문제

내 코드는 다음과 같습니다.

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 클라이언트입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top