http 나머지 요청을 통해 데이터 반환
다음과 같이 코드 코드를 복사합니다.
org.apache.commons.logging.Log 가져오기;
org.apache.commons.logging.LogFactory 가져오기;
org.apache.http.NameValuePair 가져오기;
import org.apache.http.client.ClientProtocolException;
org.apache.http.client.HttpClient 가져오기;
org.apache.http.client.ResponseHandler 가져오기;
org.apache.http.client.entity.UrlEncodedFormEntity 가져오기;
org.apache.http.client.methods.HttpGet 가져오기;
org.apache.http.client.methods.HttpPost 가져오기;
import org.apache.http.impl.client.BasicResponseHandler;
org.apache.http.impl.client.DefaultHttpClient 가져오기;
org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager 가져오기;
import java.io.IOException;
import java.text.MessageFormat;
java.util.List 가져오기;
import java.util.concurrent.TimeUnit;
/**
* http 요청을 패키징하기 위한 도구 클래스
*
* @author Gu Wei【guwei】 오후 14-4-22.3:17
*/
공개 클래스 HttpClientUtils {
개인 정적 최종 로그 로그 = LogFactory.getLog(HttpClientUtils.class);
/**
* HttpClient 초기화
*/
개인 정적 HttpClient httpClient = null;
/**
* HttpClient 인스턴스 생성
* 공개, 정적 팩토리 메소드, 필요할 때만 싱글톤 생성
*
* @반품
*/
공개 정적 HttpClient getHttpClient() {
if (httpClient == null) {
httpClient = new DefaultHttpClient(new ThreadSafeClientConnManager());
}
httpClient를 반환합니다.
}
/**
*POST 메소드 호출
*
* @param URL
* @param params 매개변수는 NameValuePair 키-값 쌍 객체입니다.
* @return 응답 문자열
* @java.io.UnsupportedEncodingException 발생
*/
공개 정적 문자열 실행ByPOST(String url, List<NameValuePair> params) {
HttpClient httpclient = getHttpClient();
HttpPost 포스트 = new HttpPost(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
문자열 responseJson = null;
노력하다 {
if (params != null) {
post.setEntity(new UrlEncodedFormEntity(params));
}
responseJson = httpclient.execute(post, responseHandler);
log.info("HttpClient POST 요청 결과: " + responseJson);
} 잡기(ClientProtocolException e) {
e.printStackTrace();
log.info("HttpClient POST 요청 예외: " + e.getMessage());
} 잡기(IOException e) {
e.printStackTrace();
} 마지막으로 {
httpclient.getConnectionManager().closeExpiredConnections();
httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);
}
응답Json을 반환합니다.
}
/**
* 메소드 요청 받기
*
* 매개변수 자리 표시자가 있는 @param URL URL(예: http://****/User/user/center.aspx?_action=GetSimpleUserInfo&codes={0}&email={1})
* @param params 매개변수 값 배열, URL의 자리표시자 순서와 일치해야 함
* @return 응답 문자열
* @java.io.UnsupportedEncodingException 발생
*/
공개 정적 문자열 실행ByGET(String url, Object[] params) {
HttpClient httpclient = getHttpClient();
문자열 메시지 = MessageFormat.format(url, params);
HttpGet get = new HttpGet(메시지);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
문자열 responseJson = null;
노력하다 {
responseJson = httpclient.execute(get, responseHandler);
log.info("HttpClient GET 요청 결과: " + responseJson);
} 잡기(ClientProtocolException e) {
e.printStackTrace();
log.info("HttpClient GET 요청 예외: " + e.getMessage());
} 잡기(IOException e) {
e.printStackTrace();
log.info("HttpClient GET 요청 예외: " + e.getMessage());
} 마지막으로 {
httpclient.getConnectionManager().closeExpiredConnections();
httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);
}
응답Json을 반환합니다.
}
/**
* @param URL
* @반품
*/
공개 정적 문자열 실행ByGET(문자열 URL) {
HttpClient httpclient = getHttpClient();
HttpGet get = new HttpGet(url);
ResponseHandler<String> responseHandler = new BasicResponseHandler();
문자열 responseJson = null;
노력하다 {
responseJson = httpclient.execute(get, responseHandler);
log.info("HttpClient GET 요청 결과: " + responseJson);
} 잡기(ClientProtocolException e) {
e.printStackTrace();
log.info("HttpClient GET 요청 예외: " + e.getMessage());
} 잡기(IOException e) {
e.printStackTrace();
log.info("HttpClient GET 요청 예외: " + e.getMessage());
} 마지막으로 {
httpclient.getConnectionManager().closeExpiredConnections();
httpclient.getConnectionManager().closeIdleConnections(30, TimeUnit.SECONDS);
}
응답Json을 반환합니다.
}
}