【发布时间】:2016-05-04 17:00:45
【问题描述】:
我正在尝试从温度模块读取文件,当我在 url 上调用 openStream() 时,我收到一个带有“无效 Http 响应”消息的 IOExeption
SEVERE: null
java.io.IOException: Invalid Http response
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1555)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
at java.net.URL.openStream(URL.java:1038)
at thermometerpoller.Poller.poll(Poller.java:38)
我可以远程登录到温度模块:
telnet 192.168.142.55 80
Trying 192.168.142.55...
Connected to 192.168.142.55.
Escape character is '^]'.
GET /state.xml HTTP/1.1
<?xml version='1.0' encoding='utf-8'?>
<datavalues>
<units>F</units>
<sensor1temp>74.0</sensor1temp>
<sensor2temp>67.0</sensor2temp>
<sensor3temp>xx.x</sensor3temp>
<sensor4temp>xx.x</sensor4temp>
<relay1state>0</relay1state>
<relay2state>0</relay2state>
</datavalues>
Connection closed by foreign host.
温度模块似乎没有在回复中发送任何标题。 不幸的是,当我查看HttpURLConnection.java 时,如果没有响应代码,它会抛出 IOException。
我的问题是,有没有办法在不关心响应代码的情况下通过库或其他方法获取文件内容?
【问题讨论】:
-
如果您在本地系统上使用防火墙,请将其禁用并进行测试。我遇到了类似的问题,后来我在防火墙日志中看到,它阻止了从我的 java 程序发送的请求。