2013-04-25 3 views
3

Android에서 .asmx 웹 서비스를 호출하려고합니다. 아래에서 내 코드를 볼 수 있습니다. 다른 웹 서비스에서 사용할 때 작동하지만 사용해야하는 웹 서비스에서는 작동하지 않습니다. 문제점은 "java.io.IOException : HTTP 요청 실패, HTTP 상태 : 500"입니다. 먼저 문제는 웹 서비스 측에서 발생한다고 가정합니다. 그러나 그것은 Devexpress 및 .NET을 사용하여 도달하려고 할 때 작동합니다.Android 오류에서 asmx 웹 서비스 호출 : "java.io.IOException : HTTP 요청이 실패했습니다. HTTP 상태 : 500"

"contentType :"application/json을 제거 할 때 Devexpress에서 같은 오류가 발생했습니다. charset = utf-8 ","line.

참고 : 웹 서비스 정의에는 오류가 없습니다.

개인 클래스 KullaniciServiceAsync는 하등의 I/O 예외가 발생한 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); 
    } 

} 
+0

이 오류는 웹 서버 소프트웨어에 대한 수정하여 해결할 수 있습니다 :

또한 당신이 튜토리얼을 따를 수 있습니다. 그것은 클라이언트 측 문제가 아닙니다. –

+0

어떻게 해결 될 수 있습니까?시스템 관리자에게 문의 할 수 있습니다. 그러나 나는 그가해야 할 일을 말해야한다. – user00001

답변

1

때 java.io.IOException

신호를 확장한다. 이 클래스는 실패 또는 중단 된 I/O 작업에 의해 생성 된 예외 클래스의 일반적인 클래스 인 입니다.

웹 서버에서 예기치 않은 조건이 발생하여 클라이언트가 요청한 URL에 대한 액세스 요청을 수행하지 못했습니다.

서버 측에 문제가있을 수 있지만 서버는 응답시 오류 조건에 대해 더 구체적 일 수 없습니다.

따라서 오류 코드 500으로 반환합니다. 이는 서버 끝에 오류가 있음을 의미합니다. 이 오류를 얻기의

기회는

  1. 의 입력 또는 다른 서버 측과 코드 측의 방법에 대해 전달하는 데 필요한 값을 수 있습니다.
  2. 은 입력이 옳았 수 있지만 어느 시점에서 서버는 자신의 말에 출력을 처리하지 못했습니다 당신에게 응답 500
  3. 이 이 이

    어떻게 문제가 해결 될 수

을 부여?

오류가 로그에 남았을 때 시스템 관리자에게 문의하십시오 (오류가 기록 된 경우). 오류가 기록되면 정확한 이유를 알 수 있습니다.

관련 문제