Java 服务器';的JSON响应可能无效
我被困在这里,我不明白问题出在哪里。 该API在Postman上测试成功,但在我的应用程序上测试失败 我的代码是: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
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是现在这里发生错误