android http类抛出异常

时间:2011-09-10 06:40:28

标签: android http

我从以下代码获取ClassCastException:java.lang.string

try {
        se = new StringEntity(myJson);
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return false;
    }
    httppost.setEntity(se);
    httppost.setHeader("Accept", "application/json");
    httppost.setHeader("Content-type", "application/json");

    ResponseHandler responseHandler = new BasicResponseHandler();
    try {
        HttpResponse response = httpclient.execute(httppost, responseHandler);
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return false;
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
        return false;
    }

我正在使用apache libray。是否有一个我无法看到的演员阵容,对此事的任何帮助都表示赞赏。可能是setEntity(se)调用吗?

1 个答案:

答案 0 :(得分:3)

如果您可以发布整个堆栈跟踪,那将非常有用 - 我们有点猜测。

那就是说,我要看的是:

HttpResponse response = httpclient.execute(httppost, responseHandler);

看起来httpClient.execute(HttpUriRequest, ResponseHandler)的返回类型取决于您传入的ResponseHandler的类型。由于您传入了BasicResponseHandler的实例,它将响应主体作为String返回,我猜测方法调用将返回java.lang.String的实例。

您可以尝试将该行更改为:

String responseBody = httpClient.execute(httppost, responseHandler);

但是,这只是猜测,因为我们没有完整的堆栈跟踪。