android - 执行 JSON 请求时出现内部错误

标签 android json

我正在开发一个通过 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 文档:

“一个 ResponseHandler,它将响应主体作为成功 (2xx) 响应的字符串返回。如果响应代码 >= 300,则使用响应主体并抛出 HttpResponseException。如果与 {@link org 一起使用.apache.http.client.HttpClient#execute( org.apache.http.client.methods.HttpUriRequest, ResponseHandler), HttpClient 可以在内部处理重定向(3xx 响应)。”

所以现在我认为这是一个服务器端错误。我需要知道到底是哪个错误。

谢谢

最佳答案

您的服务器正在返回 500 Internal Server Error 响应状态。所以问题出在您的服务器上。

关于android - 执行 JSON 请求时出现内部错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5247412/

相关文章:

android - 开发android应用程序是否需要android注册?

android - 如何在使用 android :background ="@drawable/view1" 时滚动列表

android - 如何实现监听器

安卓 : Strike out Text with bold or thicker line than default STRIKE_THRU_TEXT_FLAG

c# - 在jquery中加载大数据

ios - Int64 不工作,而 Int 工作

android - 在 Android Studio 中使用 libpd

javascript - 从 JSON 传递空值?

xml - 在 REST 服务中使用 json 和 xml

java - 使用嵌套对象和列表反序列化 JSON。 "JSON parse error: Cannot construct"