2011-03-09 30 views
1

JSONメッセージでサーバーと通信するアプリケーションを開発しています。JSONリクエストを実行する際の内部エラー

一部のメッセージが適切に送受信されました。しかし、私のルーチンの1つがエラーを投げて、それが自分の問題であるかサーバーからのものか分からない。

エラーがある:私はBasicResponseHandlerドクで読ん

private String post(String json) { 
     int TIMEOUT_MILLISEC = 10000; // = 10 seconds 
     HttpParams httpParams = new BasicHttpParams(); 
     HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC); 
     HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC); 
     HttpClient client = new DefaultHttpClient(httpParams); 

     HttpPost request = new HttpPost(
       "https://my server url"); 
     try { 
      StringEntity entity = new StringEntity(json); 
      entity.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, 
        "application/json")); 
      request.setEntity(entity); 

      ResponseHandler<String> handler = new BasicResponseHandler(); 
      return client.execute(request, handler); 
     } catch (Throwable e) { 
      e.printStackTrace(); 
      return ""; 
     } 
    } 

「Stringとしてレスポンスボディを返すするResponseHandlerを投稿する

org.apache.http.client.HttpResponseException: Internal Server Error 
    at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:71) 
    at org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:59) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:657) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:627) 
    at org.apache.http.impl.client.AbstractHttpClient.execute(AbstractHttpClient.java:616) 
    at br.com.iba.dao.DLS.post(DLS.java:121) 
    at br.com.iba.dao.DLS.fulfill(DLS.java:151) 
    at br.com.iba.LibraryActivity$3.doAction(LibraryActivity.java:123) 
    at br.com.iba.LibraryActivity$SwitchListener.setSelected(LibraryActivity.java:208) 
    at br.com.iba.LibraryActivity$SwitchListener.access$0(LibraryActivity.java:204) 
    at br.com.iba.LibraryActivity$ButtonGroup.onClick(LibraryActivity.java:230) 
    at android.view.View.performClick(View.java:2408) 
    at android.view.View$PerformClick.run(View.java:8816) 
    at android.os.Handler.handleCallback(Handler.java:587) 
    at android.os.Handler.dispatchMessage(Handler.java:92) 
    at android.os.Looper.loop(Looper.java:123) 
    at android.app.ActivityThread.main(ActivityThread.java:4627) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:521) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
    at dalvik.system.NativeStart.main(Native Method) 

私のコードはこれです成功した(2xx)応答の場合応答コードが300以上の場合、応答本体が消費され、HttpResponseExceptionがスローされます。 HttpClient#execute(org.apache.http.client.methods.HttpUriRequest、ResponseHandler)、HttpClientは内部でリダイレクト(3xx応答)を処理することがあります。

だから私はそれがサーバー側のエラーだと思う。私は正確にそれが誤りであるか知る必要があります。

ありがとうございました

+1

問題がサーバーかクライアントかにかかわらず、私は「内部サーバーエラー」のヒントがあるかもしれないと推測しています:-)これは典型的なHTTP 500テキストです。 –

答えて

5

サーバーが500内部サーバーエラー応答ステータスを返しています。だからあなたのサーバー上に問題があります。

+0

ええええええええええええええええええええええええええええええええええええええええんStackTraceはこの時点でより具体的でなければなりません。私はサーバー側でそれを解決するときに正しいとマークします。 –

+0

同じJSONパッケージをサーバーにテストすると、正しく動作します。おそらく私の側にはエラーがあります。おそらく、エラーが「org.apache.http.impl.client.BasicResponseHandler.handleResponse(BasicResponseHandler.java:71)」にありました。「 –

+0

」応答コードが300以上であれば、応答本体が消費され、HttpResponseExceptionがスローされます。ありがとう –

関連する問題