从web方法获取java中的ajax响应(java.io.FileNotFoundException)

从web方法获取java中的ajax响应(java.io.FileNotFoundException),java,android,ajax,httpurlconnection,Java,Android,Ajax,Httpurlconnection,我不知道如何更好地解释它,但我正在尝试从包含函数的URL获取响应(对吗?) 我为此工作了很多小时,每次都有一点进展,但最终还是无法实现。 这是chrome开发工具的请求和响应标题: 我的代码是: String params = "{\"prefixText\":\"" + city + "\",\"count\":10,\"contextKey\":\"he\"}"; conn = (HttpURLConnection) new URL(

我不知道如何更好地解释它,但我正在尝试从包含函数的URL获取响应(对吗?)

我为此工作了很多小时,每次都有一点进展,但最终还是无法实现。 这是chrome开发工具的请求和响应标题:

我的代码是:

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中

另外:我知道我有很多不必要的请求属性,但在代码运行之前,我无法确定哪些是不必要的。 提前感谢:)

遗憾的是,当您遇到404错误时,HttpURLConnection通常(可能现在仍然)会抛出FileNotFoundException。当您执行getInputStream()时,这是它第一次连接时,因此来自服务器的任何错误都会显示在那里


如果您想在发出请求时了解HTTP land的真实情况,请获取Wireshark或其他信息。

非常感谢Wireshark的提示!我成功了(问题是requset主体不是以applicaton/json的形式发送的,而且写得也不好)。现在我有另一个问题,我发送的两个请求体(一个来自浏览器,一个来自eclipse)由于某种原因编码不同。。。我尝试更改内容类型字符集,但没有解决它。抱歉。。。未完成我的评论,无法编辑。。非常感谢Wireshark的提示!我成功了(问题是requset主体不是以applicaton/json的形式发送的,而且写得也不好)。现在我有另一个问题,我发送的两个请求体(一个来自chrome浏览器,一个来自eclipse)由于某种原因编码不同。。。我尝试更改内容类型字符集,但没有解决它。下面是比较过的两个请求(第一个是好的,第二个不是):(查看“prefixText”键)您应该对此提出不同的问题,因为该问题与此问题无关(它将帮助下一个查找此问题的人)。我不知道答案,但我会在你发布新问题时看看。如果有人需要,工作代码: