2014-10-29 2 views
0

그래서 문제가 발생하여 서비스 지원팀에서 HTML로 지원하도록 요청했습니다. 그래서 나는HTTPClient 및 PostMethod

HttpClient client = new HttpClient(); 
PostMethod post = new PostMethod("https://www.url.to/post-to"); 
NameValuePair[] params = { 
       new NameValuePair("NAME", name), 
       new NameValuePair("EMAIL", email), 
for(NameValuePair param : params){ 
    post.setParameter(param.getName(), param.getValue()); 
} 

에 의해 생성이 등 모든 헤더와 함께, HTML로 얻거나 문자열로 보낸 요청을받을 수 있습니다에 해당하는 HTML을 얻을 필요가?

답변

1

일부 로깅 프레임 워크를 사용하는 경우 Apache HttpClient는 요청과 응답을 기록하도록 구성 할 수 있습니다 (Wire logging 참조). 로깅 프레임 워크가 제대로 설정되어있는 경우 문서에 의해 판단,이 로깅 프레임 워크로 Apache Commons Logging를 사용하는 경우가

System.setProperty("org.apache.commons.logging.Log", "org.apache.commons.logging.impl.SimpleLog"); 

System.setProperty("org.apache.commons.logging.simplelog.showdatetime", "true"); 

System.setProperty("org.apache.commons.logging.simplelog.log.httpclient.wire", "debug"); 

System.setProperty("org.apache.commons.logging.simplelog.log.org.apache.commons.httpclient", "debug"); 

편집

이 설정은 괜찮지 가능하기에 충분합니다. 위에 언급 된 링크에는 log4jjava.util.logging에 대해 설정하는 예제도 포함되어 있습니다.

0

같은 URL에 동일한 두 매개 변수를 보내는 동일한 HTML 양식을 작성할 수 있습니다.

그러나이 연결로 인해 발생하는 문제에 대한 지원 티켓을 여는 경우 요청 본문이 동일해도 브라우저가 URL에 다른 헤더를 보낼 수 있으므로 HTML이 도움이되지 않을 수 있습니다. .

post.getRequestHeaders()을 사용하여 post 변수에서 요청 헤더를 가져올 수 있습니다. 그것은 Header[] 배열을 반환하는데, 문자열로 변환해야합니다. 메시지 본문은 값을 urlencoding하여 매개 변수에서 쉽게 재구성 할 수 있습니다. 본문은 항상 형태가 NAME=urlencodedname&EMAIL=urlencodedemail입니다.