我正在向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());
答案 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());