거기 setDoOutput()
에서 URLConnection
. 에 따르면 문서 내가해야
출력에 URL 연결을 사용하려면 DoOutput 플래그를 true로 설정하고 그렇지 않으면 false로 설정하십시오.
이제 정확히이 문제에 직면 하고 있습니다. Java 런타임은 요청을 POST
한 번 setDoOutput(true)
호출하고 서버는 GET
요청 에만 응답 합니다. setDoOutput(true)
코드에서 제거하면 어떻게되는지 이해하고 싶습니다 .
이것이 정확히 어떤 영향을 미칠까요? 내가 false
지금 무엇을 할 수 있고 지금 무엇을 할 수 없는가? GET
요청 을 수행 할 수 있습니까? 이 방법의 맥락에서 “출력”이란 무엇입니까?
답변
POST 또는 PUT 요청과 같이 요청 본문 을 보내려면 ( output ) true로 설정해야 합니다. GET을 사용하면 일반적으로 시체를 보내지 않으므로 필요하지 않습니다.
요청 본문 자체를 보내는 것은 연결의 출력 스트림을 통해 수행됩니다.
conn.getOutputStream().write(someBytes);
답변
setDoOutput(true)
POST
및 PUT
요청에 사용됩니다 . 그렇다면 요청 false
을 사용하기위한 것입니다 GET
.
답변
주석을 추가하면 연결이 오래 지속되고 GET과 POST를 모두 보내는 경우 다음 작업을 수행합니다.
if (doGet) { // some boolean
con.setDoOutput(false); // reset any previous setting, if con is long lasting
con.setRequestMethod("GET");
}
else {
con.setDoOutput(true); // reset any previous setting, if con is long lasting
con.setRequestMethod("POST");
}
연결이 오래 지속되지 않도록하려면 매번 연결을 닫으십시오.
if (doClose) // some boolean
con.setRequestProperty("Connection", "close");
con.connect(); // force connect request
답변
public void setDoOutput( boolean dooutput )
매개 변수로 값을 doOutput
취하고이 URLConnection 에 대한 필드 의이 값을 지정된 값으로 설정합니다.
입력 및 / 또는 출력에 URL 연결을 사용할 수 있습니다. 출력에 URL 연결을 사용하려면 DoOutput 플래그를 true로 설정하고 그렇지 않으면 false로 설정하십시오. 기본값은 거짓입니다.