js向java发送http请求_java中发送http请求的方法

packageorg.jeecgframework.test.demo;importjava.io.BufferedReader;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.io.OutputStreamWriter;importjava.io.UnsupportedEncodingException;importjava.net.ConnectException;importjava.net.HttpURLConnection;importjava.net.Socket;importjava.net.URL;importjava.net.URLConnection;importjava.net.URLEncoder;importjava.util.ArrayList;importjava.util.HashMap;importjava.util.Iterator;importjava.util.List;importjava.util.Map;importjava.util.Map.Entry;importjava.util.Set;importjava.util.SortedMap;importorg.apache.http.HttpResponse;importorg.apache.http.NameValuePair;importorg.apache.http.client.HttpClient;importorg.apache.http.client.entity.UrlEncodedFormEntity;importorg.apache.http.client.methods.HttpGet;importorg.apache.http.client.methods.HttpPost;importorg.apache.http.impl.client.DefaultHttpClient;importorg.apache.http.message.BasicNameValuePair;public classHttpClientHelper {/*** @Description:使用HttpURLConnection发送post请求

*@author:liuyc

* @time:2016年5月17日 下午3:26:07*/

public static String sendPost(String urlParam, Mapparams, String charset) {

StringBuffer resultBuffer= null;//构建请求参数

StringBuffer sbParams = newStringBuffer();if (params != null && params.size() > 0) {for (Entrye : params.entrySet()) {

sbParams.append(e.getKey());

sbParams.append("=");

sbParams.append(e.getValue());

sbParams.append("&");

}

}

HttpURLConnection con= null;

OutputStreamWriter osw= null;

BufferedReader br= null;//发送请求

try{

URL url= newURL(urlParam);

con=(HttpURLConnection) url.openConnection();

con.setRequestMethod("POST");

con.setDoOutput(true);

con.setDoInput(true);

con.setUseCaches(false);

con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");if (sbParams != null && sbParams.length() > 0) {

osw= newOutputStreamWriter(con.getOutputStream(), charset);

osw.write(sbParams.substring(0, sbParams.length() - 1));

osw.flush();

}//读取返回内容

resultBuffer = newStringBuffer();int contentLength = Integer.parseInt(con.getHeaderField("Content-Length"));if (contentLength > 0) {

br= new BufferedReader(newInputStreamReader(con.getInputStream(), charset));

String temp;while ((temp = br.readLine()) != null) {

resultBuffer.append(temp);

}

}

}catch(Exception e) {throw newRuntimeException(e);

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

osw.close();

}catch(IOException e) {

osw= null;throw newRuntimeException(e);

}finally{if (con != null) {

con.disconnect();

con= null;

}

}

}if (br != null) {try{

br.close();

}catch(IOException e) {

br= null;throw newRuntimeException(e);

}finally{if (con != null) {

con.disconnect();

con= null;

}

}

}

}returnresultBuffer.toString();

}/*** @Description:使用HttpClient发送post请求

*@author:liuyc

* @time:2016年5月17日 下午3:28:23*/

public static String httpClientPost(String urlParam, Mapparams, String charset) {

StringBuffer resultBuffer= null;

HttpClient client= newDefaultHttpClient();

HttpPost httpPost= newHttpPost(urlParam);//构建请求参数

List list = new ArrayList();

Iterator> iterator =params.entrySet().iterator();while(iterator.hasNext()) {

Entry elem =iterator.next();

list.add(newBasicNameValuePair(elem.getKey(), String.valueOf(elem.getValue())));

}

BufferedReader br= null;try{if (list.size() > 0) {

UrlEncodedFormEntity entity= newUrlEncodedFormEntity(list, charset);

httpPost.setEntity(entity);

}

HttpResponse response=client.execute(httpPost);//读取服务器响应数据

resultBuffer = newStringBuffer();

br= new BufferedReader(newInputStreamReader(response.getEntity().getContent()));

String temp;while ((temp = br.readLine()) != null) {

resultBuffer.append(temp);

}

}catch(Exception e) {throw newRuntimeException(e);

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

br.close();

}catch(IOException e) {

br= null;throw newRuntimeException(e);

}

}

}returnresultBuffer.toString();

}//请求xml组装

public static String getRequestXml(SortedMapparameters){

StringBuffer sb= newStringBuffer();

sb.append("");

Set es=parameters.entrySet();

Iterator it=es.iterator();while(it.hasNext()) {

Map.Entry entry=(Map.Entry)it.next();

String key=(String)entry.getKey();

String value=(String)entry.getValue();if ("attach".equalsIgnoreCase(key)||"body".equalsIgnoreCase(key)||"sign".equalsIgnoreCase(key)) {

sb.append(""+""+key+">");

}else{

sb.append(""+value+""+key+">");

}

}

sb.append("");returnsb.toString();

}//生成签名

public static String createSign(String characterEncoding,SortedMapparameters){

StringBuffer sb= newStringBuffer();

Set es=parameters.entrySet();

Iterator it=es.iterator();while(it.hasNext()) {

Map.Entry entry=(Map.Entry)it.next();

String k=(String)entry.getKey();

Object v=entry.getValue();if(null != v && !"".equals(v)&& !"sign".equals(k) && !"key".equals(k)) {

sb.append(k+ "=" + v + "&");

}

}

sb.append("key=" + "");

String sign=MD5.md5(sb.toString()).toUpperCase();returnsign;

}//请求方法

public staticString httpsRequest(String requestUrl, String requestMethod, String data) {try{

URL url= newURL(requestUrl);

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

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);//设置请求方式(GET/POST)

conn.setRequestMethod(requestMethod);

conn.setRequestProperty("content-type", "application/json");//conn.setRequestProperty("content-type", "text/xml;charset=utf-8");//当outputStr不为null时向输出流写数据

if (null !=data) {

OutputStream outputStream=conn.getOutputStream();//注意编码格式

outputStream.write(data.getBytes("UTF-8"));

outputStream.close();

}//从输入流读取返回内容

InputStream inputStream =conn.getInputStream();

InputStreamReader inputStreamReader= new InputStreamReader(inputStream, "utf-8");

BufferedReader bufferedReader= newBufferedReader(inputStreamReader);

String str= null;

StringBuffer buffer= newStringBuffer();while ((str = bufferedReader.readLine()) != null) {

buffer.append(str);

}//释放资源

bufferedReader.close();

inputStreamReader.close();

inputStream.close();

inputStream= null;

conn.disconnect();returnbuffer.toString();

}catch(ConnectException ce) {

System.out.println("连接超时:{}"+ce);

}catch(Exception e) {

System.out.println("https请求异常:{}"+e);

}return null;

}public static voidmain(String[] args) {

String requestUrl,requestMethod,outputStr;

requestUrl="(此处填写你要请求的url地址)";

requestMethod="POST";

outputStr=""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

""+

"";//错误的json请求//String data = "[{\"id\":1,\"name\":\"o2o_V3.0新版发布\",\"content\":\"o2o_V3.0新版发布\",\"time\":\"2015-05-11 03:12:51\"}]";String data= "{\"id\":1,\"name\":\"o2o_V3.0新版发布\",\"content\":\"o2o_V3.0新版发布\",\"time\":\"2015-05-11 03:12:51\"}";

String xml=httpsRequest(requestUrl,requestMethod,data);

System.out.println(xml);//System.out.println(outputStr);

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值