Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/471.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 服务器';的JSON响应可能无效_Java_Android_Json_Loopj - Fatal编程技术网

Java 服务器';的JSON响应可能无效

Java 服务器';的JSON响应可能无效,java,android,json,loopj,Java,Android,Json,Loopj,我被困在这里,我不明白问题出在哪里。 该API在Postman上测试成功,但在我的应用程序上测试失败 我的代码是: public void invokeWS(RequestParams params) { // Show Progress Dialog prgDialog.show(); // Make RESTful webservice call using AsyncHttpClient object AsyncHttpClient client = new

我被困在这里,我不明白问题出在哪里。 该API在Postman上测试成功,但在我的应用程序上测试失败

我的代码是:

public void invokeWS(RequestParams params) {
    // Show Progress Dialog
    prgDialog.show();
    // Make RESTful webservice call using AsyncHttpClient object
    AsyncHttpClient client = new AsyncHttpClient();
    client.post("http://openetizen.com/api/v1/sessions", params, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
            // Hide Progress Dialog
            prgDialog.hide();
            try {
                // JSON Object
                JSONObject obj = new JSONObject(String.valueOf(responseBody));
                Log.v("Response", String.valueOf(responseBody));
                // When the JSON response has status boolean value assigned with true
                if (obj.getBoolean("status")) {
                    Toast.makeText(getApplicationContext(), "Selamat datang!", Toast.LENGTH_LONG).show();
                    // Navigate to Home screen
                    navigatetoMainActivity();
                }
                // Else display error message
                else {
                    errorMsg.setText(obj.getString("error_msg"));
                    Toast.makeText(getApplicationContext(), obj.getString("error_msg"), Toast.LENGTH_LONG).show();
                }
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show();
                e.printStackTrace();
                Log.e("ERROR", "Response");


            }
        }

        @Override
        protected Message obtainMessage(int responseMessageId, Object responseMessageData) {
            return super.obtainMessage(responseMessageId, responseMessageData);
        }

        @Override
        public Object getTag() {
            return super.getTag();
        }

        @Override
        public void setTag(Object TAG) {
            super.setTag(TAG);
        }

        @Override
        public URI getRequestURI() {
            return super.getRequestURI();
        }

        @Override
        public void setRequestURI(URI requestURI) {
            super.setRequestURI(requestURI);
        }

        @Override
        public Header[] getRequestHeaders() {
            return super.getRequestHeaders();
        }

        @Override
        public void setRequestHeaders(Header[] requestHeaders) {
            super.setRequestHeaders(requestHeaders);
        }

        @Override
        public boolean getUseSynchronousMode() {
            return super.getUseSynchronousMode();
        }

        @Override
        public void setUseSynchronousMode(boolean sync) {
            super.setUseSynchronousMode(sync);
        }

        @Override
        public boolean getUsePoolThread() {
            return super.getUsePoolThread();
        }

        @Override
        public void setUsePoolThread(boolean pool) {
            super.setUsePoolThread(pool);
        }

        @Override
        public String getCharset() {
            return super.getCharset();
        }

        @Override
        public void setCharset(String charset) {
            super.setCharset(charset);
        }

        @Override
        public void onProgress(long bytesWritten, long totalSize) {
            super.onProgress(bytesWritten, totalSize);
        }

        @Override
        public void onStart() {
            super.onStart();
        }

        @Override
        public void onFinish() {
            super.onFinish();
        }

        @Override
        public void onPreProcessResponse(ResponseHandlerInterface instance, HttpResponse response) {
            super.onPreProcessResponse(instance, response);
        }

        @Override
        public void onPostProcessResponse(ResponseHandlerInterface instance, HttpResponse response) {
            super.onPostProcessResponse(instance, response);
        }

        @Override
        public void onRetry(int retryNo) {
            super.onRetry(retryNo);
        }

        @Override
        public void onCancel() {
            super.onCancel();
        }

        @Override
        public void onUserException(Throwable error) {
            super.onUserException(error);
        }

        @Override
        protected void handleMessage(Message message) {
            super.handleMessage(message);
        }

        @Override
        protected void sendMessage(Message msg) {
            super.sendMessage(msg);
        }

        @Override
        protected void postRunnable(Runnable runnable) {
            super.postRunnable(runnable);
        }

        @Override
        public void sendResponseMessage(HttpResponse response) throws IOException {
            super.sendResponseMessage(response);
        }

        @Override
        protected Object clone() throws CloneNotSupportedException {
            return super.clone();
        }

        @Override
        public boolean equals(Object o) {
            return super.equals(o);
        }

        @Override
        protected void finalize() throws Throwable {
            super.finalize();
        }

        @Override
        public int hashCode() {
            return super.hashCode();
        }

        @Override
        public String toString() {
            return super.toString();
        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
            // Hide Progress Dialog
            prgDialog.hide();
            // When Http response code is '404'
            if (statusCode == 404) {
                Toast.makeText(getApplicationContext(), "Requested resource not found", Toast.LENGTH_LONG).show();
            }
            // When Http response code is '500'
            else if (statusCode == 500) {
                Toast.makeText(getApplicationContext(), "Something went wrong at server end", Toast.LENGTH_LONG).show();
            }
            // When Http response code other than 404, 500
            else {
                Toast.makeText(getApplicationContext(), "Unexpected Error occcured! [Most common Error: Device might not be connected to Internet or remote server is not up and running]", Toast.LENGTH_LONG).show();
            }
        }
    });
}
错误发生在这里:

catch (JSONException e) {
                // TODO Auto-generated catch block
                Toast.makeText(getApplicationContext(), "Error Occured [Server's JSON response might be invalid]!", Toast.LENGTH_LONG).show();
                e.printStackTrace();
                Log.e("ERROR", "Response");


            }


我应该如何解决此问题?谢谢。

试试这个,告诉我结果

try 
{
     JSONObject obj = new JSONObject(new String(responseBody));
     if (obj.getString("status").equalsIgnoreCase("success") {
                    Toast.makeText(getApplicationContext(), "Selamat datang!", Toast.LENGTH_LONG).show();
     navigatetoMainActivity();
}
else {
    errorMsg.setText(obj.getString("error_msg"));
    Toast.makeText(getApplicationContext(), obj.getString("error_msg"), Toast.LENGTH_LONG).show();
}
}

我从这里得到了教程,你们试着调试了吗?已经调试了:Log.e(“错误”,“响应”)|在控制台E/ERROR上:ResponseSo您在第
JSONObject obj=newjsonobject(String.valueOf(responseBody))行得到它@ThanhDuyNgo是现在这里发生错误