PHP拡張Postmanを使用して、単純なChromeページをテストしようとしています。 URLパラメーターを送信すると、スクリプトは正常に機能します(たとえば、変数は$_REQUEST
パラメーターで使用可能です)。それらをx-www-form-urlencoded
パラメーターとして送信すると、$_REQUEST
パラメーターにはPHPSESSID
のみが含まれます。
スクリプト:
<?php
var_export($_REQUEST);
?>
URLパラメーターを送信すると、$_REQUEST
に含まれます:
しかし、それらをPOST
変数として送信すると、$_REQUEST
には含まれません:
私は何が欠けていますか?
Postmanのurlをhttp://
に設定していましたが、Apacheはhttps://
にリダイレクトしており、途中でPOST変数が削除されていました。
https://
に変更した後、POST変数は適切に機能しました。
Body Tab
を使用して、そこにpost parameters
を入力するだけです。 Get
が選択されている場合、Body Tab
は無効になっていることに注意してください。
ヘッダーのコンテンツタイプを確認してください。 POSTMANヘッダーで生のJSONとcontent-typeをapplication/jsonとして送信すると問題が発生していました。
私のphpはリクエストポストにジャックをすべて表示していました。 RAWテキストエリアのJSONとそのタイプをJSONとしてcontent-typeをapplication/x-www-form-urlencodedに変更するまで、私のPHPアプリは投稿データを表示し始めませんでした。生のjsonを扱うときに期待していたものではなく、今は必要なもので動作しています。
x-www-form-urlencoded
でパラメーターを送信する場合、Content-Type
as application/x-www-form-urlencoded
を使用してリクエストのヘッダーを設定する必要があります
私は同じ問題を抱えていました。それを修正するために、次のヘッダーを追加しました。
Content-Type: application/json
生のポストフィールドパラメータに「json」のタイプが含まれていた場合でも、コンテンツタイプを手動で追加する必要がありました。
私にとって、サーバーはHTTPS要求を予期していましたが、URLでそれを指定しませんでした。フックはサーバーに到達しますが、本文は空になります。
「Postman」のバージョンの問題:
私は同じ問題に直面しています。最も古いバージョンのpostmanを使用してデータを送信しているとき。
そのとき、サーバー側で空のJSONデータを受信しました。
そしてこの問題を修正しました、最も古いバージョンのpostmanをアンインストールし、最新バージョンでインストールしたら。