我只需要通过正常的HTTP POST向webservice发送请求以获得响应。我在身体上传递了必需的参数。我运行它。我得到“无法处理消息,因为内容类型'text / json'不是预期的类型'application / soap + msbin1'。“错误。当我对此进行研究时,由于“Web服务要求具有特定内容类型的请求,即”application / soap + msbin1“。当我替换预期的内容类型时,我收到错误请求错误.I不知道怎么从中恢复过来。
我的代码: ...
DefaultHttpClient httpClient = new DefaultHttpClient();
ResponseHandler <String> resonseHandler = new BasicResponseHandler();
HttpPost postMethod = new HttpPost("My URL");
postMethod.setHeader( "Content-Type", "text/json");
postMethod.setHeader( "Cache-Control", "no-cache");
JSONObject json = new JSONObject();
json.put("userName", "My Username");
json.put("password", "My Password");
json.put("isPersistent",false);
postMethod.setEntity(new ByteArrayEntity(json.toString().getBytes("UTF8")));
HttpResponse response = httpClient.execute(postMethod);
...
答案 0 :(得分:0)
看起来您正在尝试调用WCF SOAP服务。该服务期望正确的SOAP通信(=无JSON),而且它使用SOAP消息的MS二进制消息编码(即内容类型描述的内容)不可互操作,因此我怀疑您将能够在Android设备上使用它(除非您发现为Java / Android实现该编码。)
答案 1 :(得分:0)
HttpPost request = new HttpPost(url);
StringEntity entity = new StringEntity(json.toString());
entity.setContentType("application/json;charset=UTF-8"); entity.setContentEncoding(new BasicHeader(HTTP.CONTENT_TYPE,"application/json;charset=UTF-8"));
request.setHeader("Accept", "application/json");
request.setEntity(entity);
try{
DefaultHttpClient httpClient = new DefaultHttpClient();
response = httpClient.execute(request);
}
尝试使用类似的东西。它对我有用。
感谢。 N_JOY。