0

JSON を使用してクライアントとサーバーのやり取りを実行しようとしましたが、サーバーに投稿したデータが届きません。PHP スクリプトの$_POST配列が空です。

MSDNから直接 WebRequest の例を取得し、それをテストすることになりました。それはまだうまくいきません。また、HTML フォームを使用していくつかのデータを投稿しようとしましたが、問題なく動作します。私は完全に困惑しています。

getallheaders()PHPを呼び出すと、

OK
array(5) {
  ["Content-Type"]=>
    string(33) "application/x-www-form-urlencoded"
  ["Host"]=>
    string(9) "localhost"
  ["Content-Length"]=>
    string(2) "54"
  ["Expect"]=>
    string(12) "100-continue"
  ["Connection"]=>
    string(10) "Keep-Alive"

var_dump($_POST) を実行すると array(0) が返されますが

誰でも何か提案できますか?

4

2 に答える 2

1

MSDN のコードは生の文字列を送信するため、PHP はそれをフィールドに分割して .xml に入れる方法を知りません$_POST。でその POST データを取得できるはずですfile_get_contents('php://input')

データを に取得したい場合は$_POST、それをエンコードする必要があります (エンコードするのと同じ方法、GET パラメーターをエンコードするのと同じ方法:

string postData="fieldName="+System.Web.HttpUtility.UrlEncode("The data that goes in the field");

いつものように、複数のフィールドが必要な場合は、それらを&s で区切る必要があります。

于 2012-04-26T23:23:33.590 に答える
0

これらは単なるヘッダーです。getallheaders() 呼び出しの結果に POST パラメーターを期待しないでください。content-length が 54 バイトを示唆しているため、何かを送信しています。$_REQUEST パラメータを var ダンプしてみてください。別の方法で送信されているかどうかを確認してください。

于 2012-04-26T23:24:00.187 に答える