获取org.json.JSONException的随机错误:Value<;!无法将java.lang.String类型的DOCTYPE转换为JSONObject
嗨,我有时会收到这个JsonException。。。为什么会发生这种情况?下面是我的代码获取org.json.JSONException的随机错误:Value<;!无法将java.lang.String类型的DOCTYPE转换为JSONObject,java,android,json,jakarta-ee,Java,Android,Json,Jakarta Ee,嗨,我有时会收到这个JsonException。。。为什么会发生这种情况?下面是我的代码 public int getResult(String name, double lat, double lon) { try { HttpClient httpclient = new DefaultHttpClient(); String query = URLEncoder.encode(name, "utf-8");
public int getResult(String name, double lat, double lon) {
try {
HttpClient httpclient = new DefaultHttpClient();
String query = URLEncoder.encode(name, "utf-8");
HttpPost httppost = new HttpPost("http://00004rl.rcomhost.com/demo/?json=get_dealing&dev=1&store_name=" + query + "&longitude=" + lon
+ "&latitude=" + lat);
JSONObject object = new JSONObject();
StringEntity se = new StringEntity(object.toString());
se.setContentType(new BasicHeader(HTTP.CONTENT_TYPE, "application/json"));
httppost.setEntity(se);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent();
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();
JSONObject jso = new JSONObject(sb.toString());
if (jso.getString("status").equals("ok")) {
return 1;
}
} catch (Exception e) {
e.printStackTrace();
return 0;
}
return 0;
}
我得到下面的例外,这是一段时间我的日志低于
09-25 19:13:26.079: W/System.err(4842): org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject
09-25 19:13:26.079: W/System.err(4842): at org.json.JSON.typeMismatch(JSON.java:107)
09-25 19:13:26.079: W/System.err(4842): at org.json.JSONObject.<init>(JSONObject.java:158)
09-25 19:13:26.079: W/System.err(4842): at org.json.JSONObject.<init>(JSONObject.java:171)
09-25 19:13:26.079: W/System.err(4842): at com.eheuristics.android.diegodeals.googleplacesandmaps.MainActivity$LoadPlaces.getResult(MainActivity.java:246)
09-25 19:13:26.079: W/System.err(4842): at com.eheuristics.android.diegodeals.googleplacesandmaps.MainActivity$LoadPlaces.doInBackground(MainActivity.java:208)
09-25 19:13:26.079: W/System.err(4842): at com.eheuristics.android.diegodeals.googleplacesandmaps.MainActivity$LoadPlaces.doInBackground(MainActivity.java:1)
09-25 19:13:26.079: W/System.err(4842): at android.os.AsyncTask$2.call(AsyncTask.java:185)
09-25 19:13:26.079: W/System.err(4842): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:306)
09-25 19:13:26.089: W/System.err(4842): at java.util.concurrent.FutureTask.run(FutureTask.java:138)
09-25 19:13:26.089: W/System.err(4842): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1088)
09-25 19:13:26.089: W/System.err(4842): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:581)
09-25 19:13:26.089: W/System.err(4842): at java.lang.Thread.run(Thread.java:1019)
09-25 19:13:26.079:W/System.err(4842):org.json.JSONException:Value您的服务器有时以html而不是json向您发送响应。您的服务器有时以html而不是json向您发送响应。结果似乎有问题。
在构建JSON
对象之前,应该尝试打印结果
如果某个地方出现错误,然后由于某种原因,结果是一个HTML页面,那么您无法构建JSON
对于此错误,结果似乎是HTML,因为结果似乎有问题。
在构建JSON
对象之前,应该尝试打印结果
如果某个地方出现错误,然后由于某种原因,结果是一个HTML页面,那么您无法构建JSON
对于此错误,由于的原因,结果似乎是HTML。问题是您正在将服务器响应作为JSON处理,这是您所期望的行为。但在某些情况下,例如服务器关闭、请求出错、服务器繁忙。。。有人定义了一个UncaughtException处理程序,通过某个GUI指示用户出了问题,服务器有时会返回该错误。
如果您正在某处读取服务器响应,您可以实际复制它,并尝试在某个HTML页面查看器中运行它,以获得确切的服务器响应 问题是您正在将服务器响应作为JSON处理,这是您所期望的行为。但在某些情况下,例如服务器关闭、请求出错、服务器繁忙。。。有人定义了一个UncaughtException处理程序,通过某个GUI指示用户出了问题,服务器有时会返回该错误。
如果您正在某处读取服务器响应,您可以实际复制它,并尝试在某个HTML页面查看器中运行它,以获得确切的服务器响应 这个错误似乎出现在SDK级别25上,但在SDK级别23上运行良好。这个错误似乎出现在SDK级别25上,但在SDK级别23上运行良好。在构建JSON之前,您能给我们一个结果吗?看起来这是一个HTML页面。这不是一个坏问题来奖励他否定!!!服务器位于开发人员的另一端,开发人员可能处于初级阶段!!感谢用户1931595:(感谢您的积极回复,非常感谢您在构建JSON之前能给我们结果吗?看起来这是一个HTML页面。这不是一个坏问题,给他否定!!!服务器在开发人员的另一边,开发人员可能正处于初级阶段!!感谢用户1931595:(感谢您的积极回复,非常感谢您Peter DeWeese和boulder您都是对的错误来自服务器不知道为什么这些人会给负面评分(否决票)这个问题:(我已经试了很多次,但不知道实际上错误来自服务器)A Peter DeWeese和boulder你们都是对的错误来自服务器不知道为什么这样的人会给负面评分(否决票)这个问题:(我已经试了很多次,但不知道错误实际上来自服务器