不知道如何更好地解释它,但我试图从包含函数的URL获得响应(对吗?)。
我正在研究这个问题已经很长时间了,并且每次都会进步一段时间,但最终无法实现这一目标。 这是chrome dev工具的请求和响应标头:
我的代码是:
String params = "{\"prefixText\":\"" + city
+ "\",\"count\":10,\"contextKey\":\"he\"}";
conn = (HttpURLConnection) new URL(
"http://bus.gov.il/WebForms/wfrmMain.aspx/GetCompletionList")
.openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setChunkedStreamingMode(0);
// conn.setFixedLengthStreamingMode(params.length());
conn.addRequestProperty("Accept", "*/*");
conn.addRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.addRequestProperty("Content-Length", String.valueOf(params.length()));
conn.addRequestProperty("Host", "bus.gov.il");
conn.addRequestProperty("Origin", "http://bus.gov.il");
conn.addRequestProperty("X-Requested-With", "XMLHttpRequest");
conn.addRequestProperty("Referer",
"http://bus.gov.il/WebForms/wfrmMain.aspx?width=1024&company=1&language=he&state=");
OutputStream os = new BufferedOutputStream(conn.getOutputStream());
os.write(params.getBytes());
String answer = readStream(conn.getInputStream());
在此行上调用“getinputstream”时,我得到异常(我在堆栈跟踪中看到):
String answer = readStream(conn.getInputStream());
进入readStream函数之前!
我不知道如何解决它......
尝试搜索xmlhttprequest,但了解它只在JS中。
另外:我知道我有很多不必要的请求属性,但在代码工作之前我无法弄清楚哪些是不必要的。 在此先感谢:)
答案 0 :(得分:1)
可悲的是,过去(并且可能仍然是)当您收到404错误时,HttpURLConnection会抛出FileNotFoundException。当您在第一次连接时执行getInputStream()时,服务器上的任何错误都会显示在那里。
如果您想在查询请求时查看HTTP域中的实际情况,请获取Wireshark或其他内容。