java httputil_HttpRequestUtil工具类

packagecom.alphajuns.util;importorg.apache.commons.codec.binary.Base64;importorg.apache.log4j.Logger;import javax.net.ssl.*;importjava.io.BufferedReader;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.PrintWriter;importjava.net.HttpURLConnection;importjava.net.URL;public classHttpRequestUtil {private static Logger mailAndLyncFailLogger = Logger.getLogger("MailAndLyncFailLogger");/***

* 向指定URL发送POST方法的请求

*@paramurl 发送请求的URL

*@returnURL所代表远程资源的响应*/

public static intsendGet(String url) {int resultCode = 0;try{

URL realUrl= newURL(url);//打开和URL之间的连接

HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();

conn.setRequestMethod("GET"); //设置post方式连接//设置通用的请求属性

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setRequestProperty("Charset", "UTF-8");

conn.setUseCaches(false);//建立实际的连接

conn.connect();//获取响应状态

resultCode =conn.getResponseCode();

}catch(Exception e) {

e.printStackTrace();throw newRuntimeException(e);

}returnresultCode;

}/***

* 向指定URL发送GET方法的请求

*@paramurl 发送请求的URL

*@returnURL所代表远程资源的响应*/

public staticString sendGetAndRetrieveContent(String url) {

String result= null;

StringBuffer resultBuffer= newStringBuffer();try{

URL realUrl= newURL(url);//打开和URL之间的连接

HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();

conn.setRequestMethod("GET"); //设置post方式连接//设置通用的请求属性

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setRequestProperty("Charset", "UTF-8");

conn.setUseCaches(false);//建立实际的连接

conn.connect();//获取响应状态

InputStream in =conn.getInputStream();

InputStreamReader reader= new InputStreamReader(in,"UTF-8");

BufferedReader breader= newBufferedReader(reader);

String str= null;while((str=breader.readLine())!=null){

resultBuffer.append(str);

}

breader.close();

reader.close();

in.close();

conn.disconnect();

}catch(Exception e) {

e.printStackTrace();throw newRuntimeException(e);

}return result=resultBuffer.toString();

}/***

* 向指定URL发送POST方法的请求

*@paramurl 发送请求的URL

*@paramparam 请求参数,请求参数应该是name1=value1&name2=value2的形式

*@returnURL所代表远程资源的响应*/

public static intsendPost(String url, String param) {

PrintWriter out= null;int resultCode = 0;try{

URL realUrl= newURL(url);

mailAndLyncFailLogger.info("realUrl:"+realUrl);

mailAndLyncFailLogger.info("param:"+param);//打开和URL之间的连接

HttpURLConnection conn =(HttpURLConnection) realUrl.openConnection();

conn.setRequestMethod("POST"); //设置post方式连接//设置通用的请求属性

conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

conn.setRequestProperty("Connection", "Keep-Alive");

conn.setRequestProperty("Charset", "UTF-8");//发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);//获取URLConnection对象对应的输出流

out = newPrintWriter(conn.getOutputStream());//发送请求参数

out.print(param);//flush输出流的缓冲

out.flush();//定义BufferedReader输入流来读取URL的响应

resultCode =conn.getResponseCode();

}catch(Exception e) {

e.printStackTrace();

mailAndLyncFailLogger.error(e.getMessage());

}finally{try{if (out != null) {

out.close();

}

}catch(Exception ex) {

ex.printStackTrace();

mailAndLyncFailLogger.error(ex.getMessage());

}

}returnresultCode;

}/***

* 向指定URL发送POST方法的请求

*@paramurl 发送请求的URL

*@paramparam 请求参数,请求参数应该是name1=value1&name2=value2的形式

*@paramuserName 新品系统发送数据账号名

*@parampassWord 新品系统发送数据账号密码

*@returnURL所代表远程资源的响应*/

public static intsendPostExtend(String url, String param, String userName, String passWord) {

PrintWriter out= null;int resultCode = -1;

String base64Str= null;

String userInfo= null;try{

URL realUrl= newURL(url);

mailAndLyncFailLogger.info("realUrl:"+realUrl);

mailAndLyncFailLogger.info("param:"+param+"; from userName="+userName);//打开和URL之间的连接

HttpsURLConnection conn =(HttpsURLConnection) realUrl.openConnection();//SSLContext sslcontext = SSLContext.getInstance("SSL","SunJSSE");

SSLContext sslcontext = SSLContext.getInstance("SSL");

sslcontext.init(null, new TrustManager[]{new MyX509TrustManager()}, newjava.security.SecureRandom());

HostnameVerifier ignoreHostnameVerifier= newHostnameVerifier() {public booleanverify(String s, SSLSession sslsession) {

mailAndLyncFailLogger.info("WARNING: Hostname is not matched for cert.");return true;

}

};

conn.setHostnameVerifier(ignoreHostnameVerifier);

conn.setSSLSocketFactory(sslcontext.getSocketFactory());

conn.setRequestMethod("POST"); //设置post方式连接//设置通用的请求属性

conn.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");

conn.setRequestProperty("Accept-Language", "zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2");

conn.setRequestProperty("Accept-Encoding", "gzip, deflate, br");

conn.setRequestProperty("Connection", "keep-alive");

conn.setRequestProperty("Upgrade-Insecure-Requests", "1");//柳汽通 需要包含指定头部,用于临时授权

Base64 base64 = newBase64();

userInfo= userName+":"+passWord;

base64Str= base64.encodeToString(userInfo.getBytes("UTF-8"));

conn.setRequestProperty("Authorization", "Basic "+base64Str);//发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);//不校验//conn.setHostnameVerifier(DO_NOT_VERIFY);//获取URLConnection对象对应的输出流

out = newPrintWriter(conn.getOutputStream());//发送请求参数

out.print(param);//flush输出流的缓冲

out.flush();//定义BufferedReader输入流来读取URL的响应

conn.getResponseCode();

resultCode=conn.getResponseCode();

}catch(Exception e) {

e.printStackTrace();

mailAndLyncFailLogger.error(e.getMessage());

}finally{try{if (out != null) {

out.close();

}

}catch(Exception ex) {

ex.printStackTrace();

mailAndLyncFailLogger.error(ex.getMessage());

}

}returnresultCode;

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值