我正在使用以下代码发送 GET 请求,然后接收响应:
try {
URL url = new URL(strurl);
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setRequestMethod("GET");
con.setDoOutput(true);
con.connect();
BufferedReader is = new BufferedReader(new InputStreamReader(con.getInputStream()));
String line;
String vAnswerStr="";
String lineSeparator = System.getProperty("line.separator");
while ((line = is.readLine()) != null) {
vAnswerStr = vAnswerStr + line + lineSeparator;
}
is.close();
} catch (IOException ex) {
ex.printStackTrace();
}
strurl
是这样的,虽然我不认为它的格式可能与问题有关:
预期的输出是 xml,像这样:
<?xml version="1.0" encoding="UTF-8"?>
<response>
<tag1>00000</tag1>
<tag2>0</tag2>
...
</response>
10 次尝试中有 5 次完成了这项工作。
其他 5 次尝试返回:
java.io.IOException:服务器返回 HTTP 响应代码:415 用于 URL: https ://somesite.ru/?arg1=val1&arg2=val2
在 sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1615) 在 sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
我已经阅读了关于 HTTP 415 错误的几篇关于 SO 的帖子。但他们似乎没有帮助。我尝试了不同的请求属性,但要么找不到,要么不是这样。
IDE 是 NetBeans 7.0
谁能给我正确的方向来解决问题?
编辑
忘了说,当从浏览器发出相同的请求时,它在 100% 的尝试中都有效。