반응형
JAVA HTTP POST 전송 예제
1. 아래 HttpConnectionUtil의 메소드를 이용한다
- 메소드명 : postRequest
- 파라미터 : {
pURL : 생성할 난수의 길이
,pList : 파라미터 객체 (HashMap<String,String>)
}
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
public class HttpConnectionUtil {
/**
* @param pURL : 요청 URL
* @param pList : 파라미터 객체 (HashMap<String,String>)
*
* Created by 닢향
* http://niphyang.tistory.com
*/
public static String postRequest(String pURL, HashMap < String, String > pList) {
String myResult = "";
try {
// URL 설정하고 접속하기
URL url = new URL(pURL); // URL 설정
HttpURLConnection http = (HttpURLConnection) url.openConnection(); // 접속
//--------------------------
// 전송 모드 설정 - 기본적인 설정
//--------------------------
http.setDefaultUseCaches(false);
http.setDoInput(true); // 서버에서 읽기 모드 지정
http.setDoOutput(true); // 서버로 쓰기 모드 지정
http.setRequestMethod("POST"); // 전송 방식은 POST
//--------------------------
// 헤더 세팅
//--------------------------
// 서버에게 웹에서 <Form>으로 값이 넘어온 것과 같은 방식으로 처리하라는 걸 알려준다
http.setRequestProperty("content-type", "application/x-www-form-urlencoded");
//--------------------------
// 서버로 값 전송
//--------------------------
StringBuffer buffer = new StringBuffer();
//HashMap으로 전달받은 파라미터가 null이 아닌경우 버퍼에 넣어준다
if (pList != null) {
Set key = pList.keySet();
for (Iterator iterator = key.iterator(); iterator.hasNext();) {
String keyName = (String) iterator.next();
String valueName = pList.get(keyName);
buffer.append(keyName).append("=").append(valueName);
}
}
OutputStreamWriter outStream = new OutputStreamWriter(http.getOutputStream(), "UTF-8");
PrintWriter writer = new PrintWriter(outStream);
writer.write(buffer.toString());
writer.flush();
//--------------------------
// Response Code
//--------------------------
//http.getResponseCode();
//--------------------------
// 서버에서 전송받기
//--------------------------
InputStreamReader tmp = new InputStreamReader(http.getInputStream(), "UTF-8");
BufferedReader reader = new BufferedReader(tmp);
StringBuilder builder = new StringBuilder();
String str;
while ((str = reader.readLine()) != null) {
builder.append(str + "\n");
}
myResult = builder.toString();
return myResult;
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return myResult;
}
}
2. 호출 예제
- 아래와 같이 호출하면 결과 값이 리턴 된다
String url = "https://example.com"; //URL
HashMap<String, String> param = new HashMap<String, String>();
param.put("name", "닢향"); //PARAM
String resp = HttpConnectionUtil.postRequest(url, param);
양심상 출처는 밝혀주자
반응형
'개발 > Java' 카테고리의 다른 글
[Spring] Session Timeout 설정 3가지 방법 (0) | 2023.04.24 |
---|---|
[Tomcat 에러] org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.apache.AnnotationProcessor (0) | 2021.09.08 |
자바 정규식 html 태그를 제외한 문자열 출력 (0) | 2019.09.09 |
[Java] 인증번호 2자리 4자리 6자리 등 난수 생성 (중복허용, 중복제거) (11) | 2018.12.05 |