duanfan1869 2016-11-28 10:09
浏览 882

错误解析数据:org.json.JSONException:值<!DOCTYPE类型java.lang.String无法转换为JSONObject

The URL that I use to get JSON from redirects the URL to recaptcha and gives the following error: "data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject"

Following is the activity and the code has the url i am trying to get JSON from but instead i get redirected to recaptcha:

protected Void doInBackground(Void... params) {
            // Create an array
            arraylist = new ArrayList<HashMap<String, String>>();
            // Retrieve JSON Objects from the given URL address
//URL

                jsonobject = JSONfunctions
                        .getJSONfromURL("http://laboneinside.com/android/diag_conn.php");

            try {
                // Locate the array name in JSON
                jsonarray = jsonobject.getJSONArray("result");
                Log.i("JSON TAG", jsonobject.toString());

                for (int i = 0; i < jsonarray.length(); i++) {
                    HashMap<String, String> map = new HashMap<String, String>();
                    jsonobject = jsonarray.getJSONObject(i);
                    // Retrive JSON Objects
                    map.put("nameDiag", jsonobject.getString("name"));
                    map.put("srcDiag", jsonobject.getString("src"));
                    map.put("linkDiag", jsonobject.getString("link"));
                    // Set the JSON Objects into the array
                    arraylist.add(map);
                }
            } catch (JSONException e) {
                Log.e("Error", e.getMessage());
                e.printStackTrace();
            }
            return null;
        }

JSONFUNCTION:

public class JSONfunctions {

    public static JSONObject getJSONfromURL(String url) {
        InputStream is = null;
        String result = "";
        JSONObject jArray = null;

        // Download JSON data from URL
        try {
            HttpClient httpclient = new DefaultHttpClient();
            HttpPost httppost = new HttpPost(url);
            HttpResponse response = httpclient.execute(httppost);
            HttpEntity entity = response.getEntity();
            is = entity.getContent();

        } catch (Exception e) {
            Log.e("log_tag", "Error in http connection " + e.toString());
        }

        // Convert response to string
        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 + "
");
            }
            is.close();
            result = sb.toString();
            Log.i("JSON Parser", result);
        } catch (Exception e) {
            Log.e("log_tag", "Error converting result " + e.toString());
        }

        try {

            jArray = new JSONObject(result);

        } catch (JSONException e) {
            Log.e("log_tag", "Error parsing data " + e.toString());
        }

        return jArray;
    }
}

Following is the logcat:

I/JSON Parser: <!DOCTYPE html>
                                                                          <!--[if lt IE 7]> <html class="no-js ie6 oldie" lang="en-US"> <![endif]-->
                                                                          <!--[if IE 7]>    <html class="no-js ie7 oldie" lang="en-US"> <![endif]-->
                                                                          <!--[if IE 8]>    <html class="no-js ie8 oldie" lang="en-US"> <![endif]-->
                                                                          <!--[if gt IE 8]><!--> <html class="no-js" lang="en-US"> <!--<![endif]-->
                                                                          <head>
                                                                          <title>Attention Required! | CloudFlare</title>
                                                                          <meta charset="UTF-8" />
                                                                          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
                                                                          <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1" />
                                                                          <meta name="robots" content="noindex, nofollow" />
                                                                          <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1" />
                                                                          <link rel="stylesheet" id="cf_styles-css" href="/cdn-cgi/styles/cf.errors.css" type="text/css" media="screen,projection" />
                                                                          <!--[if lt IE 9]><link rel="stylesheet" id='cf_styles-ie-css' href="/cdn-cgi/styles/cf.errors.ie.css" type="text/css" media="screen,projection" /><![endif]-->
                                                                          <style type="text/css">body{margin:0;padding:0}</style>
                                                                          <!--[if lte IE 9]><script type="text/javascript" src="/cdn-cgi/scripts/jquery.min.js"></script><![endif]-->
                                                                          <!--[if gte IE 10]><!--><script type="text/javascript" src="/cdn-cgi/scripts/zepto.min.js"></script><!--<![endif]-->
                                                                          <script type="text/javascript" src="/cdn-cgi/scripts/cf.common.js"></script>


                                                                          </head>
                                                                          <body>
                                                                            <div id="cf-wrapper">
                                                                              <div class="cf-alert cf-alert-error cf-cookie-error" id="cookie-alert" data-translate="enable_cookies">Please enable cookies.</div>
                                                                              <div id="cf-error-details" class="cf-error-details-wrapper">
                                                                                <div class="cf-wrapper cf-header cf-error-overview">
                                                                                  <h1 data-translate="challenge_headline">One more step</h1>
                                                                                  <h2 class="cf-subheadline"><span data-translate="complete_sec_check">Please complete the security check to access</span> laboneinside.com</h2>
                                                                                </div><!-- /.header -->

                                                                                <div class="cf-section cf-highlight cf-captcha-container">
                                                                                  <div class="cf-wrapper">
                                                                                    <div class="cf-columns two">
                                                                                      <div class="cf-column">
                                                                                        <div class="cf-highlight-inverse cf-form-stacked">
                                                                                          <form class="challenge-form" id="challenge-form" action="/cdn-cgi/l/chk_captcha" method="get">
                                                                            <script type="text/javascript" src="/cdn-cgi/scripts/cf.challenge.js" data-type="normal"  data-ray="308cf17ac17329be" async data-sitekey="6LfOYgoTAAAAAInWDVTLSc8Yibqp-c9DaLimzNGM" data-stoken="kvvwvLSUth2MQ7fsfXFwr9TjwkJ6pEiMAfiAhb7x9fVk7yqCvGMh-myXoKQuhQt_4MjgZHunito0fikCnHS-DFoymBKWm5gb3lnlB4dceb0"></script>
                                                                            <div class="g-recaptcha"></div>
                                                                            <noscript id="cf-captcha-bookmark" class="cf-captcha-info">
                                                                              <div><div style="width: 302px">
                                                                                <div>
                                                                                  <iframe src="https://www.google.com/recaptcha/api/fallback?k=6LfOYgoTAAAAAInWDVTLSc8Yibqp-c9DaLimzNGM&stoken=kvvwvLSUth2MQ7fsfXFwr9TjwkJ6pEiMAfiAhb7x9fVk7yqCvGMh-myXoKQuhQt_4MjgZHunito0fikCnHS-DFoymBKWm5gb3lnlB4dceb0" frameborder="0" scrolling="no" style="width: 302px; height:422px; border-style: none;"></iframe>
                                                                                </div>
                                                                                <div style="width: 300px; border-style: none; bottom: 12px; left: 25px; margin: 0px; padding: 0px; right: 25px; background: #f9f9f9; border: 1px solid #c1c1c1; border-radius: 3px;">
                                                                                  <textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 40px; border: 1px solid #c1c1c1; margin: 10px 25px; padding: 0px; resize: none;"></textarea>
                                                                                  <input type="submit" value="Submit"></input>
                                                                                </div>
                                                                              </div></div>
                                                                            </noscript>
                                                                          </form>

                                                                                        </div>
                                                                                      </div>

                                                                                      <div class="cf-column">
                                                                                        <div class="cf-screenshot-container">

                                                                                          <span class="cf-no-screenshot"></span>

                                                                                        </div>
                                                                                      </div>
                                                                                    </div><!-- /.columns -->
                                                                                  </div>
                                                                                </div><!-- /.captcha-container -->

                                                                                <div class="cf-section cf-wrapper">
                                                                                  <div class="cf-columns two">
                                                                                    <div class="cf-column">
                                                                                      <h2 data-translate="why_captcha_headline">Why do I have to complete a CAP
11-28 04:55:15.976 30265-30325/com.example.predator.labone E/log_tag: Error parsing data org.json.JSONException: Value <!DOCTYPE of type java.lang.String cannot be converted to JSONObject

How do i stop it from redirecting so that i can get to the page that has the JSON data?

  • 写回答

3条回答 默认 最新

  • dongyi3616 2016-11-28 10:12
    关注

    Nelson you are getting html content from web service. Response format is not a valid json that by JSONException occur.

    评论

报告相同问题?

悬赏问题

  • ¥15 虚拟机打包apk出现错误
  • ¥30 最小化遗憾贪心算法上界
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 逻辑谓词和消解原理的运用
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝