在请求json api时获取HTML页面

时间:2016-07-01 09:33:02

标签: java json api

我正在向api发出请求,该请求将响应发送回json数据。但有时它会发回一个带有api文档的html页面。在文档中,没有提到api可以发送json的不同响应。什么时候发送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());

1 个答案:

答案 0 :(得分:0)

修改

可能是因为没有设置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());