从Android错误调用asmx web服务:“java.io.IOException:HTTP请求失败,HTTP状态:500”
问题描述:
我试图从Android调用.asmx Web服务。在下面你可以看到我的代码。当我将它用于其他Web服务时它正在工作,但它不适用于我需要使用的服务。 问题是“java.io.IOException:HTTP请求失败,HTTP状态:500”异常。 首先我假设问题来自Web服务端。然而,当我试图达到使用Devexpress和.NET时,它是有效的。从Android错误调用asmx web服务:“java.io.IOException:HTTP请求失败,HTTP状态:500”
我试图从Devexpress得到同样的错误,当我删除“contentType:”application/json; charset = utf-8“,”行。
注意:Web服务定义没有错误。
私有类KullaniciServiceAsync扩展的AsyncTask {
protected void onPreExecute(){
Toast.makeText(getApplicationContext(), "Kullanici Bilgileri Alınıyor...", Toast.LENGTH_SHORT).show();
}
@Override
protected KullaniciBilgisiGetir doInBackground(String... Str) {
try {
//ArrayList<HeaderProperty> headerProperty = new ArrayList<HeaderProperty>();
//headerProperty.add(new HeaderProperty("Content-Type", "application/json; charset=utf-8"));
k = new KullaniciBilgisiGetir();
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("UserId","1234567890");
request.addProperty("Password",Pass);
request.addProperty("Kod",Kod);
request.addProperty("Sifre",Sifre);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
Log.e("Request",request.toString());
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.debug = true;
try{
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapObject response = (SoapObject) envelope.getResponse();
if (response.hasProperty("KResult")) {
if (response.getPropertyAsString("KResult") == null) {
k.setKullaniciRespond(null);
} else {
k.setKullaniciRespond(response.getPropertyAsString("KResult"));
}
}
}catch(Exception e){
Log.e("httpTRYCATCH", e.toString());
}
} catch (Exception e) {
Log.e("ilkTRY",e.toString());
}
return k;
}
protected void onPostExecute(KullaniciBilgisiGetir e){
txt1.setText("ResponseText ->" + e.getKullaniciRespond());
//txt2.setText("bu "+e.getResponse());
//txt3.setText("Count "+count);
}
}
答
产生java.io.IOException
的信号是某种类型的I/O异常已经发生。该类是 由失败或中断的I/O 操作产生的一般异常类别。
Web服务器遇到意外情况,阻止它履行客户端访问请求的URL的请求。
服务器端可能有问题,但服务器无法针对其响应中的错误情况更加具体。
因此它将它作为错误代码500返回,这意味着服务器端出现错误。收到此错误的
机会可能是
- 的输入或需要传递的服务器端,并在你的代码方面的方法是不同的值。
- 可能是你的输入是正确的,但在某些时候,服务器无法处理他的最终输出给您回应500
怎样才可以解决?
您将不得不要求系统管理员在他的末端检查错误日志(如果在他们那边使用了任何日志)。如果错误被记录,您将知道确切的原因。
答
请检查属性名称是否与Web服务参数相同。例如
;
request.addProperty("UserId","1234567890");
您的参数名称UserId上的Web服务?
此错误只能通过修复到Web服务器软件来解决。这不是客户端问题。 – 2013-04-25 08:08:04
如何解决?我可以联系系统管理员。但我应该告诉他他需要做什么。 – user00001 2013-04-25 08:23:25