티스토리 뷰
반응형
package test;
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.MultipartPostMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.util.EncodingUtil;
public class HttpClientHelper {
public HttpClientHelper(String urlStr){
this.urlStr = urlStr;
paramList = new ArrayList();
}
private String urlStr = "";
private String content = "";
private int methodType = 0;
private int iGetResultCode = 0;
private int connectionMaxTime = 5000;
private static final int GETTYPE = 0;
private static final int POSTTYPE = 1;
private static final int MULTIPARTTYPE = 2;
public String getContent() {
return content;
}
public int getIGetResultCode() {
return iGetResultCode;
}
private List paramList = null;
public void setParam(String key, String value) {
paramList.add(new NameValuePair(key,value));
}
public int getMethodType() {
return methodType;
}
public void setMethodType(int methodType) {
this.methodType = methodType;
}
public int execute() {
iGetResultCode = 0;
HttpClient client = null;
HttpMethod method = null;
NameValuePair[] paramArray = new NameValuePair[paramList.size()];
paramList.toArray(paramArray);
try {
client = new HttpClient(new MultiThreadedHttpConnectionManager());
client.setTimeout(getConnectionMaxTime());
if(methodType == GETTYPE){
GetMethod getMethod = new GetMethod(urlStr);
if(paramArray.length > 0)
getMethod.setQueryString(EncodingUtil.formUrlEncode(paramArray,"euc-kr"));
method = getMethod;
}else if(methodType == POSTTYPE){
PostMethod postMethod = new PostMethod(urlStr);
for(int k = 0; k < paramArray.length; k++){
postMethod.addParameter(paramArray[k].getName(), new String(paramArray[k].getValue().getBytes(),"ISO-8859-1"));
}
method = postMethod;
}else if(methodType == MULTIPARTTYPE){
MultipartPostMethod multipartPostMethod = new MultipartPostMethod(urlStr);
for(int k = 0; k < paramArray.length; k++){
multipartPostMethod.addParameter(paramArray[k].getName(), paramArray[k].getValue());
}
method = multipartPostMethod;
}
// method.setFollowRedirects(true);
iGetResultCode = client.executeMethod(method);
if(iGetResultCode == HttpStatus.SC_OK)
{
content = method.getResponseBodyAsString();
}
} catch (Exception e) {
iGetResultCode = 0;
}finally{
if(method != null) method.releaseConnection();
}
return iGetResultCode;
}
public int getConnectionMaxTime() {
return connectionMaxTime;
}
public void setConnectionMaxTime(int connectionMaxTime) {
this.connectionMaxTime = connectionMaxTime;
}
}
--------------------------------------------------------------------------------
package test;
import gshs.eshop.common.httputil.HttpClientHelper;
public class TestSimple {
private void testPostMethod() {
System.out.println("testPostMethod() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
// 넘겨줄 파라미터 세팅
test.setParam("act", "/servlet/KBoard?tableName=kjsp");
// setMethodType을 지정하지 않으면 default = 0, (0:get, 1:post, 2:multipart)
test.setMethodType(1);
// connection 연결시간 설정 default = 5000;
test.setConnectionMaxTime(5000);
int rtnCode = test.execute(); // 실행하기
System.out.println(rtnCode); // 결과 값. 200이면 정상
System.out.println(test.getIGetResultCode()); // rtnCode 값을 결과 값이다.
System.out.println(test.getContent()); // 해당 페이지의 내용 불러오기
}
private void testGetMethod() {
System.out.println("testGetMethod() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
test.setParam("act", "/servlet/KBoard?tableName=kjsp");
// setMethodType을 지정하지 않으면 default = 0, (0:get, 1:post, 2:multipart)
test.setMethodType(0);
// connection 연결시간 설정 default = 5000;
test.setConnectionMaxTime(5000);
int rtnCode = test.execute();
System.out.println(rtnCode); // 결과 값. 200이면 정상
System.out.println(test.getIGetResultCode()); // rtnCode 값을 결과 값이다.
System.out.println(test.getContent()); // 해당 페이지의 내용 불러오기
}
private void testGetMethodSample() {
System.out.println("testGetMethodSample() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
test.setParam("act", "/servlet/KBoard?tableName=kjsp");
// setMethodType을 지정하지 않으면 default = 0, (0:get, 1:post, 2:multipart)
test.setMethodType(0);
// connection 연결시간 설정 default = 5000;
test.setConnectionMaxTime(5000);
int count = 5;
int rtnCode = 0;
for (int i = 0; i < count; i++) {
System.out.println("count : " + (i + 1));
rtnCode = test.execute();
if (rtnCode == 200) {
break;
}
}
if (rtnCode == 200) {
System.out.println(test.getIGetResultCode());
System.out.println(test.getContent());
}
}
private void testNoMethodOnlyUrl() {
System.out.println("testNoMethodOnlyUrl() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp?act=/servlet/KBoard?tableName=kjsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
int rtnCode = test.execute();
System.out.println(rtnCode); // 결과 값. 200이면 정상
System.out.println(test.getIGetResultCode()); // rtnCode 값을 결과 값이다.
System.out.println(test.getContent()); // 해당 페이지의 내용 불러오기
}
public static void main(String[] args) {
TestSimple test = new TestSimple();
test.testGetMethod();
test.testPostMethod();
test.testNoMethodOnlyUrl();
test.testGetMethodSample();
}
}
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.MultiThreadedHttpConnectionManager;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.MultipartPostMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.util.EncodingUtil;
public class HttpClientHelper {
public HttpClientHelper(String urlStr){
this.urlStr = urlStr;
paramList = new ArrayList();
}
private String urlStr = "";
private String content = "";
private int methodType = 0;
private int iGetResultCode = 0;
private int connectionMaxTime = 5000;
private static final int GETTYPE = 0;
private static final int POSTTYPE = 1;
private static final int MULTIPARTTYPE = 2;
public String getContent() {
return content;
}
public int getIGetResultCode() {
return iGetResultCode;
}
private List paramList = null;
public void setParam(String key, String value) {
paramList.add(new NameValuePair(key,value));
}
public int getMethodType() {
return methodType;
}
public void setMethodType(int methodType) {
this.methodType = methodType;
}
public int execute() {
iGetResultCode = 0;
HttpClient client = null;
HttpMethod method = null;
NameValuePair[] paramArray = new NameValuePair[paramList.size()];
paramList.toArray(paramArray);
try {
client = new HttpClient(new MultiThreadedHttpConnectionManager());
client.setTimeout(getConnectionMaxTime());
if(methodType == GETTYPE){
GetMethod getMethod = new GetMethod(urlStr);
if(paramArray.length > 0)
getMethod.setQueryString(EncodingUtil.formUrlEncode(paramArray,"euc-kr"));
method = getMethod;
}else if(methodType == POSTTYPE){
PostMethod postMethod = new PostMethod(urlStr);
for(int k = 0; k < paramArray.length; k++){
postMethod.addParameter(paramArray[k].getName(), new String(paramArray[k].getValue().getBytes(),"ISO-8859-1"));
}
method = postMethod;
}else if(methodType == MULTIPARTTYPE){
MultipartPostMethod multipartPostMethod = new MultipartPostMethod(urlStr);
for(int k = 0; k < paramArray.length; k++){
multipartPostMethod.addParameter(paramArray[k].getName(), paramArray[k].getValue());
}
method = multipartPostMethod;
}
// method.setFollowRedirects(true);
iGetResultCode = client.executeMethod(method);
if(iGetResultCode == HttpStatus.SC_OK)
{
content = method.getResponseBodyAsString();
}
} catch (Exception e) {
iGetResultCode = 0;
}finally{
if(method != null) method.releaseConnection();
}
return iGetResultCode;
}
public int getConnectionMaxTime() {
return connectionMaxTime;
}
public void setConnectionMaxTime(int connectionMaxTime) {
this.connectionMaxTime = connectionMaxTime;
}
}
--------------------------------------------------------------------------------
package test;
import gshs.eshop.common.httputil.HttpClientHelper;
public class TestSimple {
private void testPostMethod() {
System.out.println("testPostMethod() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
// 넘겨줄 파라미터 세팅
test.setParam("act", "/servlet/KBoard?tableName=kjsp");
// setMethodType을 지정하지 않으면 default = 0, (0:get, 1:post, 2:multipart)
test.setMethodType(1);
// connection 연결시간 설정 default = 5000;
test.setConnectionMaxTime(5000);
int rtnCode = test.execute(); // 실행하기
System.out.println(rtnCode); // 결과 값. 200이면 정상
System.out.println(test.getIGetResultCode()); // rtnCode 값을 결과 값이다.
System.out.println(test.getContent()); // 해당 페이지의 내용 불러오기
}
private void testGetMethod() {
System.out.println("testGetMethod() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
test.setParam("act", "/servlet/KBoard?tableName=kjsp");
// setMethodType을 지정하지 않으면 default = 0, (0:get, 1:post, 2:multipart)
test.setMethodType(0);
// connection 연결시간 설정 default = 5000;
test.setConnectionMaxTime(5000);
int rtnCode = test.execute();
System.out.println(rtnCode); // 결과 값. 200이면 정상
System.out.println(test.getIGetResultCode()); // rtnCode 값을 결과 값이다.
System.out.println(test.getContent()); // 해당 페이지의 내용 불러오기
}
private void testGetMethodSample() {
System.out.println("testGetMethodSample() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
test.setParam("act", "/servlet/KBoard?tableName=kjsp");
// setMethodType을 지정하지 않으면 default = 0, (0:get, 1:post, 2:multipart)
test.setMethodType(0);
// connection 연결시간 설정 default = 5000;
test.setConnectionMaxTime(5000);
int count = 5;
int rtnCode = 0;
for (int i = 0; i < count; i++) {
System.out.println("count : " + (i + 1));
rtnCode = test.execute();
if (rtnCode == 200) {
break;
}
}
if (rtnCode == 200) {
System.out.println(test.getIGetResultCode());
System.out.println(test.getContent());
}
}
private void testNoMethodOnlyUrl() {
System.out.println("testNoMethodOnlyUrl() start ###################################");
String urlStr = "http://kkaok.pe.kr/frameset/door.jsp?act=/servlet/KBoard?tableName=kjsp";
HttpClientHelper test = new HttpClientHelper(urlStr);
int rtnCode = test.execute();
System.out.println(rtnCode); // 결과 값. 200이면 정상
System.out.println(test.getIGetResultCode()); // rtnCode 값을 결과 값이다.
System.out.println(test.getContent()); // 해당 페이지의 내용 불러오기
}
public static void main(String[] args) {
TestSimple test = new TestSimple();
test.testGetMethod();
test.testPostMethod();
test.testNoMethodOnlyUrl();
test.testGetMethodSample();
}
}
반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 단백질
- 인공지능
- DNA
- 챔픽스 후기 금연
- 흡연
- 챔픽스 후기
- 금연일기
- 과학
- 챔픽스
- 통신
- 설탕
- oracle
- 보건
- 믹스커피
- 의료
- 100일
- 생명과학
- 상식
- 보건소
- java
- 부작용
- 오라클
- 지진
- 뇌
- 윈도우10
- 냄새
- 다이어트
- 유전자
- 금연
- 금단증상
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함