0

次のコードを使用して、サーバーに put リクエストを作成しようとしています。

    HttpClient client = new DefaultHttpClient();
    HttpPut put= new HttpPut(SERVER_URL + "/subscribe");

    List<NameValuePair> pairs = new ArrayList<NameValuePair>();
    pairs.add(new BasicNameValuePair("UserId", params.get("UserId")));
    pairs.add(new BasicNameValuePair("Endpoint", params.get("Endpoint")));
    pairs.add(new BasicNameValuePair("SessionKey", params.get("SessionKey")));
    pairs.add(new BasicNameValuePair("SessionSecret", params.get("SessionSecret")));
    pairs.add(new BasicNameValuePair("Token", params.get("Token")));
    pairs.add(new BasicNameValuePair("CultureInfo", params.get("CultureInfo")));
    put.setEntity(new UrlEncodedFormEntity(pairs));
    put.setHeader("Content-Type", "application/json");
    HttpResponse response = client.execute(put);
    response.getStatusLine();

サーバーは getStatusLine メソッドで 500 コードの応答を返すので、どのような要求が作成されたかを確認するために完全な要求テキストを知りたいと考えています。それを行う方法について何か提案はありますか?

4

1 に答える 1

1

WIREのログとHEADERSのログをオンします

テストしようとしている接続の完全なhttpログを切り替える方法を理解するには、上記のような投稿を読む必要があります。以下のサンプルでわかるように、ログを取得すると、ヘッダー内のすべてと、ネットワークを通過するすべて(クライアントからサーバーおよびサーバーからクライアント)を確認できます。

CURLの使用に関する提案-これらのツールを使用して開発する場合は、Androidをコーディングする前に、クライアント/サーバー間の会話をモデル化するためにcurlクライアントの使用を検討できます。次に、Androidログを使用して、CLIカールクライアントから送信していたものをAndroid経由で送信できるため、RC=500でのすべてのあいまいな問題を回避できます。

ロギングをオンにした詳細:

./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "HTTP/1.1 200 OK[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Content-Type: application/json; charset=utf-8[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Content-Disposition: attachment[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Date: Fri, 16 Nov 2012 01:05:15 GMT[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Expires: Fri, 16 Nov 2012 01:05:15 GMT[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Cache-Control: private, max-age=0[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "X-Content-Type-Options: nosniff[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "X-Frame-Options: SAMEORIGIN[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "X-XSS-Protection: 1; mode=block[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Server: GSE[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "Transfer-Encoding: chunked[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "71[\r][\n]"
./speechapi_1:D/ch.boye.httpclientandroidlib.wire( 6461): << "{"status":0,"id":"d70bb25a44fe84fb8bf7acf10c73b869-1","hypotheses":[{"
utterance":"hi","confidence":0.83725035}]}[\n]"
于 2013-03-20T14:25:59.060 に答える