我試圖從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);
}
}
此錯誤只能通過修復到Web服務器軟件來解決。這不是客戶端問題。 – 2013-04-25 08:08:04
如何解決?我可以聯繫系統管理員。但我應該告訴他他需要做什麼。 – user00001 2013-04-25 08:23:25