当我尝试在java.Here中访问restful wcf服务时,在DefaultHttpClient附近获取异常是我的代码:
public String rest(String SERVICE_URI){
String a="";
try{
HttpGet request = new HttpGet(SERVICE_URI + "/hello");
request.setHeader("Accept", "application/json");
request.setHeader("Content-type", "application/json");
**DefaultHttpClient httpClient = new DefaultHttpClient();**
HttpResponse response = httpClient.execute(request);
HttpEntity responseEntity = response.getEntity();
// Read response data into buffer
char[] buffer = new char[(int)responseEntity.getContentLength()];
InputStream stream = responseEntity.getContent();
InputStreamReader reader = new InputStreamReader(stream);
reader.read(buffer);
stream.close();
JSONArray plates = new JSONArray(new String(buffer));
a=plates.toString();
}catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return a;
}
例外是:
Exception in thread "main" java.lang.VerifyError: (class:
组织/阿帕奇/ HTTP / IMPL /客户端/ DefaultHttpClient, 方法:createHttpParams签名: ()Lorg /阿帕奇/ HTTP / PARAMS /的HttpParams) 与函数不兼容的参数
请有人帮助我......谢谢。
答案 0 :(得分:1)
这似乎是一个类加载器问题。您的代码可能是针对一个jar文件(包含HTTP客户端的东西)编译的。但是当它运行时,会使用具有相同类的不同的,不兼容的jar文件。
您是否在应用程序服务器中运行代码?如果是,则应用程序服务器可能已在具有优先权的共享位置中具有不同版本的Apache Http客户端库。
答案 1 :(得分:-1)
我猜你的问题可能与您为GET设置Content-Type标头这一事实有关。 GET请求不应包含Content-Type标头。