1

多くのデバッグオプションを試しましたが、問題の特定に役立ったものはありませんでした。私はJavaとApacheHttpPostライブラリを使用しています。

現在、httpGetとhttpHeadは正常に機能していますが、httpPostで変数を正しく送信できません。サーバーにデバッグPHPスクリプトを設定して、の内容を単純にダンプします$_POST。ターミナルでcurlリクエストを実行すると、正しく機能します。

コードスニペット:

    // create new HttpPost object
    postRequest = new HttpPost(url);

    // add post variables
    postRequest.setEntity(new StringEntity(body, ContentType.TEXT_HTML));

    // execute request
    response = executeRequest(postRequest);

文字列変数「body」は単なる文字列であり、現在「test=testing」が含まれています。このPHPデバッグスクリプトからの出力:

<?php 

  echo "Input Stream: ";

  var_dump(file_get_contents('php://input'));

  echo "POST Variables: ";

  var_dump($_POST);

?>

は :

Input Stream: string(12) "test=testing"
POST Variables: array(0) {
}

なぜそれが$_POST変数にピックアップされてダンプされないのか誰かが知っていますか?私はこれに何時間も費やしたので非常に苛立たしいです!

どんな助けもいただければ幸いです:)ありがとう

4

1 に答える 1

0

HttpParams のすべてのエントリへのアクセスを参照してください。

パラメータを含む URI を作成するには、次を使用します。

NameValuePair nvp = new BasicNameValuePair("test", "testing");
String query = URLEncodedUtils.format(nvp, "utf-8"); // use your favourite charset here
URI uri = new URI("http://localhost/app?" + query;
HttpPost postReq = new HttpPost(uri);
httpClient.execute(postReq);

これにより、次のhttp://localhost/app?test=testingようになります。

于 2013-04-25T10:17:07.007 に答える