Не знаю, как объяснить это лучше, но я пытаюсь получить ответ от URL, содержащего функцию (верно?).
Я работаю над этим много часов и немного прогрессирую каждый раз, но не могу, чтобы это наконец заработало.
Это заголовки запросов и ответов от chrome dev tools:
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.
Также: я знаю, что у меня много ненужных свойств запроса, но я не могу понять, какие из них являются ненужными, пока код не заработает.
Заранее спасибо:)