Внутренняя ошибка при выполнении запроса JSON - PullRequest
1 голос
/ 09 марта 2011

Я разрабатываю приложение, которое взаимодействует с сервером через сообщения JSON.

Некоторые сообщения были отправлены и получили результат должным образом.Но одна из моих подпрограмм вызвала ошибку, и я не уверен, что это моя проблема или с сервера.

Ошибка:

 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)

Мой код для публикации такой:

    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 "";
        }
    }

Я прочитал на BasicResponseHandler Doc:

"ResponseHandler, который возвращает тело ответа в виде строки для успешных (2xx) ответов. Если код ответа был> = 300, ответтело используется и генерируется HttpResponseException. Если это используется с {@link org.apache.http.client.HttpClient # execute (org.apache.http.client.methods.HttpUriRequest, ResponseHandler), HttpClient может обрабатывать перенаправленияответы) внутренне. "

Так что теперь я считаю, что это была ошибка на стороне сервера.Мне нужно знать, какая именно это ошибка.

Спасибо

1 Ответ

5 голосов
/ 09 марта 2011

Ваш сервер возвращает статус ответа 500 Internal Server Error. Итак, проблема на вашем сервере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...