【问题标题】:Getting an HTML page upon requesting json api请求 json api 时获取 HTML 页面
【发布时间】:2016-07-01 09:33:01
【问题描述】:

我正在向 api 发出请求,该 api 将响应作为 json 数据发回。但有时它会发回一个包含 api 文档的 html 页面。在文档中没有提到 api 可以发送与 json.xml 不同的响应。没有关于何时发送 json 和何时发送 Html 页面的模式。有时相同的请求会发回 HTML 和其他时间的 json 响应。我想知道这个异常的可能原因是什么。是 APi 问题还是我的代码问题。

我正在使用下面的代码来获取响应

URI uri = new URI(url);
            BufferedReader b = new BufferedReader(new InputStreamReader(uri.toURL().openStream())); 
            while ((line = b.readLine()) != null)
            {
            s.append(line); 
            }
tokener = new JSONTokener(s.toString());

【问题讨论】:

    标签: java json api


    【解决方案1】:

    编辑

    这可能是因为没有设置 HTTP 请求中的 Accept 标头。请尝试以下操作:

    URI uri = new URI(url);
    URLConnection httpCon = uri.toURL().openConnection();
    httpCon.setRequestProperty("Accept", "application/json");
    BufferedReader b = new BufferedReader(new InputStreamReader(httpCon.getInputStream())); 
    while ((line = b.readLine()) != null)
    {
          s.append(line); 
    }
    tokener = new JSONTokener(s.toString());
    

    【讨论】:

    • 它说“无法实例化类型 HttpURLConnection”。我已经导入了 java.net.HttpURLConnection
    • 是的,代码现在没有错误了。我会测试它并更新。
    猜你喜欢
    • 2016-05-30
    • 2013-11-17
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-22
    • 2017-12-31
    相关资源
    最近更新 更多