urlconnection에서 헤더를 설정하는 올바른 방법은 무엇입니까?
-
11-07-2019 - |
문제
내 코드는 다음과 같습니다.
URLConnection cnx = address.openConnection();
cnx.setAllowUserInteraction(false);
cnx.setDoOutput(true);
cnx.addRequestProperty("User-Agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
InputStream is = cnx.getInputStream();
내가 얻기 전에 헤더를 설정하면 괜찮습니까? InputStream
? 내 헤더가 전송되거나 서버가 기본값을 볼 수 있습니까? URLConnection
'사용자 에이전트 (있는 경우)?
해결책
헤더 ~ 해야 하다 얻기 전에 설정하십시오 InputStream
어떤 영향을 미치려면 - an IllegalStateException
연결이 이미 열려 있으면 던져집니다.
까지 User-Agent
헤더는 구체적으로 설정된 경우 보내야합니다.
참조 urlconnection Javadoc.
다른 팁
질문에 답하기 위해 코드가 정확합니다. getInputStream ()의 순간, HTTP get은 대상 서버로 전송됩니다.
사용자 에이전트에 대한 부수적 인 상태, 설정하지 않으면 URLConnection은 다음과 같은 기본값을 보냅니다.
User-Agent: Java/1.6.0_24 (varies depending on your java version)
urlconnection과 같은 저수준 구성을 사용하는 것에 대해 조언합니다. HTTP 요청을 보내기위한 라이브러리가 많이 있으며 가장 두드러진 것은 Apache HTTP 클라이언트입니다.
제휴하지 않습니다 StackOverflow