일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 선택적조인
- tomcat
- 가우스
- MySQL
- JDOM
- Spring
- swingx
- PLSQL
- 전자정부프레임워크
- appspresso
- rowspan
- sencha touch
- node.js
- WebLogic
- Google Map
- iBATIS
- oracle
- MFC
- Ajax
- Android
- jsr 296
- Eclipse
- phonegap
- ibsheet
- JSON
- Struts
- dock
- jQuery
- GPS
- PHP
- Today
- Total
Where The Streets Have No Name
httpclient예제 본문
import java.util.regex.*;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpMethod;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.GetMethod;
public class SaupjaCaution {
public static void main(String[] args) {
httpConnect("5138137263","5031551910",true);
}
/**
* httpclient가 웹서버에 접속해서 값을 받아옴
* @param SourceSaupNo
* @param TargetSaupNo
* @param debugFlag
*/
public static String httpConnect(String SourceSaupNo, String TargetSaupNo, boolean debugFlag){
//접속url
String url = "http://www.nts.go.kr:80/front/service/refer_cal/Saup/refer_saupja_caution.asp";
//return value
String caution = "";
//Instantiate an HttpClient
HttpClient client = new HttpClient();
client.getParams().setParameter("http.protocol.content-charset", "EUC-KR");
//Instantiate a GET HTTP method
HttpMethod method = new GetMethod(url);
method.setRequestHeader("User-Agent","Mozilla/4.0");
method.setRequestHeader("Referer",url);
try{
//Define name-value pairs to set into the QueryString
NameValuePair nvp1= new NameValuePair("Source_Saup_No",SourceSaupNo);
NameValuePair nvp2= new NameValuePair("Target_Saup_No",TargetSaupNo);
method.setQueryString(new NameValuePair[]{nvp1,nvp2});
int statusCode = client.executeMethod(method);
if( debugFlag ){
System.out.println("******************* httpConnect() start ************************");
System.out.println("QueryString>>> "+method.getQueryString());
System.out.println("Status Text>>> "+HttpStatus.getStatusText(statusCode));
}
//Get data as a String
String output = method.getResponseBodyAsString();
//System.out.println(output);
String ConfirmSaupId = findPattern(output,"value=(.*)",""");
if( debugFlag )System.out.println(ConfirmSaupId);
//Define name-value pairs to set into the QueryString
NameValuePair nvp3= new NameValuePair("Confirm_Saup_Id",ConfirmSaupId);
NameValuePair nvp4= new NameValuePair("Source_Saup_No",SourceSaupNo);
NameValuePair nvp5= new NameValuePair("Target_Saup_No",TargetSaupNo);
method.setQueryString(new NameValuePair[]{nvp3,nvp4,nvp5});
int statusCode2 = client.executeMethod(method);
if( debugFlag ){
System.out.println("QueryString>>> "+method.getQueryString());
System.out.println("Status Text>>> "+HttpStatus.getStatusText(statusCode2));
}
//Get data as a String
String output2 = method.getResponseBodyAsString();
//System.out.println(output2);
caution = findPattern(output2,"<b style="color:blue"(.*)","</b>");
if( debugFlag ){
System.out.println(caution);
System.out.println("******************* httpConnect() end ************************");
}
//release connection
method.releaseConnection();
} catch(Exception e) {
e.printStackTrace();
} finally {
return caution;
}
}
/**
* 특정문자열 사이의 문자열추출
* @param argTarget 검색대상이 되는 문자열
* @param argPattern1 시작검색패턴
* @param argPattern2 종료검색패턴
*/
public static String findPattern(String argTarget,String argPattern1,String argPattern2){
//검색패턴설정
String patternStr = argPattern1;
Pattern pattern = Pattern.compile(patternStr);
Matcher matcher = pattern.matcher("");
//Set the input
matcher.reset(argTarget);
//Get tagname and contents of tag
boolean matchFound = matcher.find(); // true
String tagname = matcher.group(1); // tag
tagname = tagname.substring(1);
tagname = tagname.substring(0,tagname.indexOf(argPattern2));
return tagname;
}
}