无法从HttpResponse获取响应号码

时间:2013-02-09 10:27:35

标签: android post

我有一段代码将post数据包发送到某个地方。 我想在屏幕上输出状态代码,例如200表示OK,或400表示错误请求。 数字或字符串,我现在拥有的东西:

response.getStatusLine().getStatusCode()

其中response是一个HttpResponse,但我需要将它与HttpStatus.SC_OK或其他任何东西进行比较。 该帖子发生在AsyncTask类中,该类执行post.execute()对象。 返回值是一些“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;
    }

它就像我获取响应的内容,我只感兴趣,如果它发送好或不。

1 个答案:

答案 0 :(得分:0)

试试这样:

response = httpClient.execute(httpPost,localContext);
StatusLine statusLine = response.getStatusLine();
int statusCode = statusLine.getStatusCode(); // This will be 200 or 404, etc.