0

ポストパケットをどこかに送信するコードがあります。ステータス コードを画面に出力したい。たとえば、OK の場合は 200、不正なリクエストの場合は 400 など。現時点で持っている数字または文字列のいずれか:

response.getStatusLine().getStatusCode()

ここで、応答は HttpResponse ですが、それを HttpStatus.SC_OK などと比較する必要があります。投稿は、post.execute() オブジェクトを実行する AsyncTask クラス内で行われます。戻り値は「com.example.....postAsync@#NUMBER#」です。数値はランダムなものであり、応答タイプではありません。私は何をすべきか?

編集:さらにコード:

HttpResponse response = null;
StringEntity tmp = null;
HttpPost httpPost = null;
DefaultHttpClient httpClient;
HttpContext localContext;
    public String post(String url,String data) {
        httpClient = new DefaultHttpClient();
        httpPost = new HttpPost(url);
        localContext = new BasicHttpContext(); 
        String ret = "";
        try {
            tmp = new StringEntity("value={ \"n\": " + data + " }","UTF-8");
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        httpPost.setEntity(tmp);
        httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded"); 
        try {
            response = httpClient.execute(httpPost,localContext);
            if (response != null) {
                ret = "" + response.getEntity();
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return ret;
    }

応答の内容を取得するようなものです。応答が送信されたかどうかにのみ関心があります。

4

1 に答える 1

0

次のようにしてみてください。

response = httpClient.execute(httpPost,localContext);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode(); // This will be 200 or 404, etc.
于 2013-02-09T11:53:09.697 に答える