저번 시간에는 HttpClientGet에 대해서 살짝 알아보았습니다.

이번시간에는 HttpClientPost에 대해 살짝 알아보도록 하겠습니다.


아래의 샘플 소스는 구글에 로그인 해서 정보를 가져오는 샘플입니다.

어디까지나 HttpClientPost의 사용방법에 대한 샘플이기 때문에 깊숙하게 들어가지는 않습니다.

그냥 이런것도 있구나... 라고 가볍게 봐주시길 바랍니다. ^^;


기본 HttpClientGet의 사용법과 같습니다.

파라메터를 HttpClientGet는 URL에 같이 넘겼지만. HttpClientPost는 NameValuePair를 List로 만들어서

값을 넘깁니다. 샘플소스를 한번 실행 시켜 보는게 이해하기 쉬울꺼라 생각합니다.



[샘플소스]

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
 
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.util.EntityUtils;
 
public class HttpClientPost {
 
	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception {
 
		// HttpClient 생성
		DefaultHttpClient httpclient = new DefaultHttpClient();
 
		// url
		HttpPost httpPost = new HttpPost(
				"https://www.google.com/accounts/ClientLogin");
		// 파라메터 리스트
		List<NameValuePair> nvps = new ArrayList<NameValuePair>();
		// 파라메터 설정
		// new BasicNameValuePair(키, 값)
 
		nvps.add(new BasicNameValuePair("Email", "구글메일 주소"));
		nvps.add(new BasicNameValuePair("Passwd", "패스워드"));
		nvps.add(new BasicNameValuePair("accountType", "GOOGLE"));
		nvps.add(new BasicNameValuePair("source", "Google-cURL-Example"));
		nvps.add(new BasicNameValuePair("service", "ac2dm"));
 
		httpPost.setEntity(new UrlEncodedFormEntity(nvps));
 
		// 응답
		HttpResponse response = httpclient.execute(httpPost);
 
		try {
			// 응답 결과
			System.out.println(response.getStatusLine());
			System.out.println("----------------------------------------");
 
			HttpEntity entity = response.getEntity();
 
			if (entity != null) {
				System.out.println("Response content length: "
						+ entity.getContentLength());
 
				// 콘텐츠를 읽어들임.
				BufferedReader rd = new BufferedReader(new InputStreamReader(
						entity.getContent()));
 
				String line = "";
				while ((line = rd.readLine()) != null) {
					// 콘텐츠 내용
					 System.out.println(line);
				}
			}
 
			EntityUtils.consume(entity);
		} finally {
			httpPost.releaseConnection();
		}
	}
 
}



[실행]

httppost.PNG


프로그램을 실행 시켜 보면 위와 같은 정보들이 나옵니다.

그냥 이런것도 있다라고 봐주세요. ^^;


감사합니다.