我有一个私有 Web 服务,我需要在其中通过身份验证和 JSONObject 请求。身份验证很完美,响应也很好,但作为响应,我得到了特定 Web 服务实现页面的 HTML 页面源代码。
他们对我发送的 JSONObject 请求有任何问题吗?
请参考以下代码:
公共 JSONObject getJSONFromUrl(String url) { try{ DefaultHttpClient httpClient=new DefaultHttpClient();
HttpPost httppost=new HttpPost(url);
httppost.setHeader("Authorization", "Basic "+Base64.encodeToString("abc:xyz".getBytes(), Base64.NO_WRAP));
//Posting request on htt
httppost.setHeader( "Content-Type", "application/json" );
httppost.setHeader("Accept","application/json");
JSONObject jsonPara = new JSONObject();
jsonPara.put("password", "abc");
jsonPara.put("username", "abc");
JSONObject jsonobj=new JSONObject();
jsonobj.put("request", "syncdata/get_country");
jsonobj.put("para",jsonPara);
Log.i("jason Object", jsonobj.toString());
StringEntity se2 = new StringEntity(jsonobj.toString());
se2.setContentEncoding("UTF-8");
se2.setContentType("application/json");
httppost.setEntity(se2);
HttpResponse httpResponse=httpClient.execute(httppost);
HttpEntity httpEntity=httpResponse.getEntity();
is=httpEntity.getContent();
}
catch(UnsupportedEncodingException ae)
{
ae.printStackTrace();
}
catch(ClientProtocolException ae)
{
ae.printStackTrace();
}
catch(IOException ae)
{
ae.printStackTrace();
}
catch(JSONException e)
{
e.printStackTrace();
}
try
{
BufferedReader reader=new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb=new StringBuilder();
String line=null;
while((line= reader.readLine()) != null)
{
sb.append(line + "\n");
}
is.close();
json =sb.toString();
}
catch(Exception ae)
{
ae.printStackTrace();
}
try
{
jObj=new JSONObject(json);
}
catch(JSONException e)
{
e.printStackTrace();
}
return jObj;
}
另外,我如何确认我得到的响应是 JSON 或其他格式(除调试之外),我是否得到了我实际应该得到的正确响应。