获取org.json.JSONException的随机错误:Value<;!无法将java.lang.String类型的DOCTYPE转换为JSONObject

获取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");

嗨,我有时会收到这个JsonException。。。为什么会发生这种情况?下面是我的代码

  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你们都是对的错误来自服务器不知道为什么这样的人会给负面评分(否决票)这个问题:(我已经试了很多次,但不知道错误实际上来自服务器