I have an app that submits some from data to a local server and as a result the server will send back a JSON. say {status:"success"}
Its working when I run the app in my 2.3 SDK emulator, but installed in a Galaxy Tab (2.2 SDK) the same response is in the form of a html.
I/RESPONSE( 8190): <?xml version="1.0" encoding="utf-8"?>
I/RESPONSE( 8190): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
I/RESPONSE( 8190): "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
I/RESPONSE( 8190): <html>
I/RESPONSE( 8190): <head>
I/RESPONSE( 8190): <title>417 Expectation Failed</title>
I/RESPONSE( 8190): </head>
I/RESPONSE( 8190): <body>
I/RESPONSE( 8190): <h1>Error 417 Expectation Failed</h1>
I/RESPONSE( 8190): <p>Expectation Failed</p>
I/RESPONSE( 8190): <h3>Guru Meditation:</h3>
I/RESPONSE( 8190): <p>XID: 1902486816</p>
I/RESPONSE( 8190): <hr>
I/RESPONSE( 8190): <address>
I/RESPONSE( 8190): <a href="http://www.varnish-cache.org/">Varnish cache server</a>
I/RESPONSE( 8190): </address>
I/RESPONSE( 8190): </body>
I/RESPONSE( 8190): </html>
I/RESPONSE( 8190): <--
I/RESPONSE( 8190):
I/RESPONSE( 8190): <?xml version="1.0" encoding="utf-8"?>
I/RESPONSE( 8190): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
I/RESPONSE( 8190): "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
I/RESPONSE( 8190): <html>
I/RESPONSE( 8190): <head>
I/RESPONSE( 8190): <title>417 Expectation Failed</title>
I/RESPONSE( 8190): </head>
I/RESPONSE( 8190): <body>
I/RESPONSE( 8190): <h1>Error 417 Expectation Failed</h1>
I/RESPONSE( 8190): <p>Expectation Failed</p>
I/RESPONSE( 8190): <h3>Guru Meditation:</h3>
I/RESPONSE( 8190): <p>XID: 1902486816</p>
I/RESPONSE( 8190): <hr>
I/RESPONSE( 8190): <address>
I/RESPONSE( 8190): <a href="http://www.varnish-cache.org/">Varnish cache server</a>
I/RESPONSE( 8190): </address>
I/RESPONSE( 8190): </body>
I/RESPONSE( 8190): </html>
W/System.err( 8190): org.json.JSONException: A JSONObject text must begin with '{' at character 2 of
W/System.err( 8190): <?xml version="1.0" encoding="utf-8"?>
W/System.err( 8190): <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
W/System.err( 8190): "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
W/System.err( 8190): <html>
W/System.err( 8190): <head>
W/System.err( 8190): <title>417 Expectation Failed</title>
W/System.err( 8190): </head>
W/System.err( 8190): <body>
W/System.err( 8190): <h1>Error 417 Expectation Failed</h1>
W/System.err( 8190): <p>Expectation Failed</p>
W/System.err( 8190): <h3>Guru Meditation:</h3>
W/System.err( 8190): <p>XID: 1902486816</p>
W/System.err( 8190): <hr>
W/System.err( 8190): <address>
W/System.err( 8190): <a href="http://www.varnish-cache.org/">Varnish cache server</a>
W/System.err( 8190): </address>
W/System.err( 8190): </body>
W/System.err( 8190): </html>
Edit: Request sending:-
try {
HttpClient client = new DefaultHttpClient();
String postURL = GlobalCodes.getBaseurl();
HttpPost post = new HttpPost(postURL);
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("show",
"testpost"));
post.setEntity(new UrlEncodedFormEntity(params));
HttpResponse responsePOST = client.execute(post);
HttpEntity resEntity = responsePOST.getEntity();
String str2 = EntityUtils.toString(resEntity);
Log.i("RESPONSE", " <--");
if (resEntity != null) {
Log.i("RESPONSE","**");
JSONObject jsonObj = new JSONObject(str2);
if (jsonObj.getString("status").equalsIgnoreCase("succuss")) {
.....
} else {
......
}
}
} catch (Exception e) {
e.printStackTrace();
}
can any one tell me whats going wrong?
Happy Coding..!
The Galaxy Tab must be sending different headers to the emulator. Try disabling the expectation header on your HttpPost object.
httppost.getParams().setBooleanParameter( "http.protocol.expect-continue", false )
Also see expectation failed in android during photo upload
Just check this line:
W/System.err( 8190): org.json.JSONException: A JSONObject text must begin with '{' at character 2 of
I am sure you have made a mistake while creating/encoding JSON object on server side.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With