2011-12-26 12 views
0

これをよりうまく説明する方法はわかりませんが、関数を含むURLからの応答を取得しようとしています(右?)。Webメソッド(java.io.FileNotFoundException)からjavaでajaxレスポンスを取得する

私はこの作業に長時間を費やしており、毎回少しずつ進めていますが、最終的にはこれを達成できません。 これは、クロームのdevのツールからのリクエストとレスポンスヘッダーです:

Headers

私のコードは次のとおりです。

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

誰でも必要な作業コード: http://pastebin.com/kFZwA5zR – RonLut

答えて

1

悲しいことに、悲しいことに、HttpURLConnectionは404エラーを受け取ったときにHttpURLConnectionがFileNotFoundExceptionをスローすることが以前からありました。最初に接続したときのgetInputStream()を実行しているときに、サーバーからのエラーがそこに表示されます。

リクエストを行うときに実際にHTTPの土地で何が起こっているのかを見たい場合は、Wiresharkなどを入手してください。

+0

Wiresharkのヒントありがとう! 私はそれを動作させました(問題は、requset本体がapplicaton/jsonとして送信されておらず、書き込みがうまくいかないということでした)。 コンテンツタイプの文字セットを変更しようとしましたが、解決しませんでした。もう1つの問題があります。私が送った2つのリクエストボディ(ブラウザからのものとeclipseからのもの)は、 – RonLut

+0

申し訳ありませんが...私のコメントを完了していないし、編集することはできません.. Wiresharkのヒントありがとう! 私はそれを動作させました(問題は、requset本体がapplicaton/jsonとして送信されておらず、書き込みがうまくいかないということでした)。 コンテンツタイプの文字セットを変更しようとしましたが、解決しませんでした。もう1つ問題があります。私が送った2つのリクエストボディ(クロムブラウザのものとEclipseのもの)は、何らかの理由で別々にエンコードされています。 比較された2つのリクエストがあります(最初は良い、2番目はありません)。 [link](http://imageshack.us/photo/my-images/59/chromeeclipse.jpg/) "prefixText" key) – RonLut

+0

この問題はこの質問に関連していないので、別の質問をする必要があります(これは、これを見ている次の人に役立つでしょう)。私は頭の上から答えを知らないが、投稿するときにあなたの新しい質問を見るだろう。 –

関連する問題