JAVA 기반 HTTP 요청 도구 클래스
9509 단어 웹 백 엔 드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Map;
import java.util.Set;
import org.apache.log4j.Logger;
/**
* HTTP
* params url encode, url encode,
* @Description: HTTP
* @author lushuifa
* @date 2016 11 18 11:21:05
*/
public class HttpUtil {
/**
* logger
*/
private static Logger logger = Logger.getLogger(HttpUtil.class);
/**
* Http method
*
*/
private static enum HttpMethod {
POST,DELETE,GET,PUT,HEAD;
};
@SuppressWarnings({ "unchecked", "rawtypes" })
private static String invokeUrl(String url, Map params, Map headers, int connectTimeout, int readTimeout, String encoding, HttpMethod method){
//
StringBuilder paramsStr = null;
if(params != null){
paramsStr = new StringBuilder();
Set entries = params.entrySet();
for(Map.Entry entry:entries){
String value = (entry.getValue()!=null)?(String.valueOf(entry.getValue())):"";
paramsStr.append(entry.getKey() + "=" + value + "&");
}
// POST OutputStream( form )
if(method != HttpMethod.POST){
url += "?"+paramsStr.toString();
}
}
URL uUrl = null;
HttpURLConnection conn = null;
BufferedWriter out = null;
BufferedReader in = null;
try {
//
uUrl = new URL(url);
conn = (HttpURLConnection) uUrl.openConnection();
conn.setRequestProperty("content-type", "application/x-www-form-urlencoded");
conn.setRequestMethod(method.toString());
conn.setDoOutput(true);
conn.setDoInput(true);
//
conn.setConnectTimeout(connectTimeout);
//
conn.setReadTimeout(readTimeout);
// header
if(headers != null && headers.size() > 0){
Set headerSet = headers.keySet();
for(String key:headerSet){
conn.setRequestProperty(key, headers.get(key));
}
}
if(paramsStr != null && method == HttpMethod.POST){
//
out = new BufferedWriter(new OutputStreamWriter(conn.getOutputStream(),encoding));
out.write(paramsStr.toString());
out.flush();
}
//
StringBuilder result = new StringBuilder();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(),encoding));
if(in != null){
String line = "";
while ((line = in.readLine()) != null) {
result.append(line);
}
}
return result.toString();
} catch (Exception e) {
logger.error(" ["+url+"] ! URL:"+url+", :"+params,e);
// , http
try {
byte[] buf = new byte[100];
InputStream es = conn.getErrorStream();
if(es != null){
while (es.read(buf) > 0) {;}
es.close();
}
} catch (Exception e1) {
e1.printStackTrace();
}
} finally {
try {
if (out!=null) {
out.close();
}
}catch (Exception e) {
e.printStackTrace();
}
try {
if (in !=null) {
in.close();
}
}catch (Exception e) {
e.printStackTrace();
}
//
if (conn != null){
conn.disconnect();
}
}
return null;
}
/**
* POST Http , “ ”
* :Http POST body
* @param url ( url , params null)
* @param params
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String post(String url, Map params, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,null,connectTimeout,readTimeout,charset,HttpMethod.POST);
}
/**
* POST Http , “ ”
* :Http POST body
* @param url ( url , params null)
* @param params
* @param headers
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String post(String url, Map params, Map headers, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,headers,connectTimeout,readTimeout,charset,HttpMethod.POST);
}
/**
* GET Http , “ ”
* @param url ( url , params null)
* @param params
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String get(String url, Map params, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,null,connectTimeout,readTimeout,charset,HttpMethod.GET);
}
/**
* GET Http , “ ”
* @param url ( url , params null)
* @param params
* @param headers
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String get(String url, Map params, Map headers,int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,headers,connectTimeout,readTimeout,charset,HttpMethod.GET);
}
/**
* PUT Http , “ ”
* :PUT url body, ,Resin 8K
* @param url ( url , params null)
* @param params
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String put(String url, Map params, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,null,connectTimeout,readTimeout,charset,HttpMethod.PUT);
}
/**
* PUT Http , “ ”
* :PUT url body, ,Resin 8K
* @param url ( url , params null)
* @param params
* @param headers
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String put(String url, Map params, Map headers,int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,headers,connectTimeout,readTimeout,charset,HttpMethod.PUT);
}
/**
* DELETE Http , “ ”
* @param url ( url , params null)
* @param params
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String delete(String url, Map params, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,null,connectTimeout,readTimeout,charset,HttpMethod.DELETE);
}
/**
* DELETE Http , “ ”
* @param url ( url , params null)
* @param params
* @param headers
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String delete(String url, Map params, Map headers, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,headers,connectTimeout,readTimeout,charset,HttpMethod.DELETE);
}
/**
* HEAD Http , GET
* GET , , message body ,
* @param url ( url , params null)
* @param params
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String head(String url, Map params, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,null,connectTimeout,readTimeout,charset,HttpMethod.HEAD);
}
/**
* HEAD Http , GET
* GET , , message body ,
* @param url ( url , params null)
* @param params
* @param headers
* @param connectTimeout ( ms)
* @param readTimeout ( ms)
* @param charset ( “utf-8”)
* @return
*/
public static String head(String url, Map params, Map headers, int connectTimeout, int readTimeout, String charset){
return invokeUrl(url,params,headers,connectTimeout,readTimeout,charset,HttpMethod.HEAD);
}
public static void main(String[] args) {
//Map params = new HashMap();
//params.put("phoneNo", " ");
//String str = HttpUtil.get("http://localhost:9092/elis_smp_als_dmz/do/app/activitySupport/demo", params, 3000, 3000, "UTF-8");
//System.out.println(str);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸. - 셸 은 필수.셸 마력 은 리 눅 스 의 도 구 를 스 크 립 트 에 직접 쓸 수 있다 는 것 입 니 다. terminal 에서 사용 하 는 명령 은 프로그램 에 직접 쓸 수 있 습 니 다. 그 다음 에 얼마나 안 되 는 일 인지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.