0

django Webサーバーに投稿リクエストを発行しようとしています(ブラウザ経由でアクセスすると正しく動作します)

私の郵便番号:

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost("http://23.23.237.174/save-item");

    try {
        // Add your data
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("user_email", WeShouldActivity.ACCOUNT_NAME));
        for (Field f : mData.keySet()) {
            nameValuePairs.add(new BasicNameValuePair(f.getName(), mData.get(f)));
        }
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        // Execute HTTP Post Request
        HttpResponse response = httpclient.execute(httppost);
        Log.v("GETREFERRALSSERVICE", "backing up items");

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        Log.v("GETREFERRALSSERVICE", e.getMessage());
    } catch (IOException e) {
        // TODO Auto-generated catch block
        Log.v("GETREFERRALSSERVICE", e.getMessage());
    }

apache2/access.log の完全なエラー (error.log には何も表示されません)

174.253.199.12 - - [16/May/2012:03:25:15 +0000] "POST /save-item HTTP/1.1" 500 53055 "-" "Apache-HttpClient/UNAVAILABLE (java 1.4)"

これが何であるか/修正方法を知っている人はいますか?

注: これはエラーです。ブラウザでまったく同じ URL を使用して、リクエストがビューに到達しません。ビューで最初にリクエストを出力していますが、error.log には何も表示されません。

4

2 に答える 2

1

これを試して:

HttpClient client = new DefaultHttpClient();    
client.getParams().setBooleanParameter("http.protocol.expect-continue", false);    

これで私の問題は解決しました。

于 2013-03-24T15:34:42.887 に答える
1

「Apache-HttpClient/UNAVAILABLE (java 1.4)」は単なる Android ユーザー エージェント文字列であり、エラー メッセージではありません。サーバー側に何か問題があります。ログを追加するなどしてデバッグを試みる必要があります。サーバー側では認証が必要ですか? その場合、セッション cookie などが欠落している可能性があります。

ところで、2つ以上のアイテムを追加しているように見えるのでArrayList<NameValuePair>(2)、デフォルトのコンストラクターを使用するだけで new を使用しても意味がありません。

于 2012-05-16T03:45:42.663 に答える