참조 : Getting an ajax response in java from a web method (java.io.FileNotFoundException)HTTP POST 요청 기관 다르게 인코딩 (문자 집합) 앞의 질문에
내가 요청 본문에 POST 요청에 포함 된 JSON을 보내려고하지만 웹 브라우저에서 그 일을 할 때 몸이 다르게 인코딩 (크롬) 및 내 Java 코드. link는 (제 좋은 하나이며, 두 번째는 잘못 인코딩 자바 요청이다) : 여기
String params = "{\"prefixText\":\"aCity\",\"count\":10,\"contextKey\":\"he\"}";
conn = (HttpURLConnection) new URL("http://bus.gov.il/WebForms/wfrmMain.aspx/GetCompletionList").openConnection();
conn.setDoOutput(true);
conn.setRequestMethod("POST");
conn.setFixedLengthStreamingMode(params.length());
conn.addRequestProperty("Content-Type", "application/json; charset=UTF-8");
conn.addRequestProperty("Referer", "http://bus.gov.il/WebForms/wfrmMain.aspx?width=1024&company=1&language=he&state=");
Writer out = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream()));
out.write(params);
out.close();
String answer = readStream(conn.getInputStream(), "utf-8");
는 와이어 샤크 된 바와 같이 전송 된 요청이있다 : 여기에 내 코드이다.
Content-Type에서 charset을 변경해 보았지만 아무런 변화가 없었습니다.
도움이 될 것입니다. 여기
감사합니다,하지만 지금은 모든 스트림에 기록하지 않습니다 :이 같은하면 바이너리 텍스트로 변환합니다. 'java.io.IOException : too many bytes written '이라고 말합니다. – RonLut
@RonLut : 맞습니다. 인코딩 된 문자열의 길이 대신 * 문자 * 길이의 문자열을 길이로 사용했기 때문입니다. 바이트 *. 편집 할 것입니다. –
NVM, 당신이 게시하기 몇 분 전에 나 혼자서. 변경된 :'conn.setChunkedStreamingMode (0);'그리고 이제는 작동합니다. 다시 한번 감사드립니다 :) – RonLut