我从以下代码获取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)调用吗?
答案 0 :(得分:3)
如果您可以发布整个堆栈跟踪,那将非常有用 - 我们有点猜测。
那就是说,我要看的是:
HttpResponse response = httpclient.execute(httppost, responseHandler);
看起来httpClient.execute(HttpUriRequest, ResponseHandler)
的返回类型取决于您传入的ResponseHandler的类型。由于您传入了BasicResponseHandler
的实例,它将响应主体作为String返回,我猜测方法调用将返回java.lang.String
的实例。
您可以尝试将该行更改为:
String responseBody = httpClient.execute(httppost, responseHandler);
但是,这只是猜测,因为我们没有完整的堆栈跟踪。