코드적으로 차이점이 궁금합니다.
아래의 코드를 보시면
URL url = new URL(UrlStr);
HttpURLConnection http = (HttpURLConnection) url.openConnection();
http.setRequestMethod("GET");
http.setRequestProperty("content-type", "application/x-www-form-urlencoded");
OutputStreamWriter outStream = new OutputStreamWriter(http.getOutputStream(), "EUC-KR");
PrintWriter writer = new PrintWriter(outStream);
writer.write(UrlStr);
writer.flush();
InputStreamReader tmp = new InputStreamReader(http.getInputStream(), "EUC-KR");
BufferedReader reader = new BufferedReader(tmp);
StringBuilder builder = new StringBuilder();
String str;
while ((str = reader.readLine()) != null) {
builder.append(str + "\n");
}
String myResult = builder.toString();
위의 코드를 보시면 HttpURLConnection으로 HTTP통신을 처리하는 메서드중 일부입니다.
유투브 API는 GET방식으로 호출해야된다고 하는데
위와 같은 방식으로 호출하면 문제가 발생하나요?
로그를 찍어보니
java.net.ProtocolException: method does not support a request body:
라는 로그가 찍힙니다.
그런데 이 부분을 삭제하면 잘 동작합니다.
OutputStreamWriter outStream = new OutputStreamWriter(http.getOutputStream(), "EUC-KR");
PrintWriter writer = new PrintWriter(outStream);
writer.write(UrlStr);
GET방식으로 통신할때는 쏴주는 OutputStream을 쓰면 안되는건가요?
그냥 URL url = new URL(url);
하고 url.getInputStream으로 스트림을 얻어와서 긁으면 데이터가 긁어지더군요..
GET방식으로 요청할때는 OutputStream으로 write를 보내면 안되는건지 궁금합니다.
writer.flush();