http post/get 2种使用方式
public class HttpUtil {
//HttpPost
public static String executePost(String url, List<NameValuePair> list) {
HttpPost post = new HttpPost(url);
// HttpDelete
// post.addHeader("Authorization", "MDowMDExMTExMTExMTE="); // 认证token
// post.addHeader("Content-type", "text/xml;charset=UTF-8");
// post.addHeader("Connection", "keep-alive");
if (list != null && list.size() > 0) {
try {
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(list,
HTTP.UTF_8);
post.setEntity(entity);
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
HttpClient client = new DefaultHttpClient();
try {
HttpResponse response = client.execute(post);
// response.getHeaders("Authorization"); ????????????????????token?
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String result = EntityUtils.toString(response.getEntity());
return result;
} else {
return "-2";
}
} catch (Exception e) {
e.printStackTrace();
}
return "-2";
}
//HttpGet
public static String executeGet(String url, Map<String, String> params, String encoding) throws Exception {
// 使用StringBuilder对象
StringBuilder sb = new StringBuilder(url);
sb.append('?');
// 迭代Map
for (Map.Entry<String, String> entry : params.entrySet()) {
sb.append(entry.getKey()).append('=').append(
URLEncoder.encode(entry.getValue(), encoding)).append('&');
}
sb.deleteCharAt(sb.length() - 1);
// 打开链接
URL url2 = new URL(sb.toString());
HttpGet get = new HttpGet(url2);
// HttpDelete
// get .addHeader("Authorization", "MDowMDExMTExMTExMTE="); // 认证token
// get .addHeader("Content-type", "text/xml;charset=UTF-8");
// get .addHeader("Connection", "keep-alive");
// HttpParams params = new BasicHttpParams();
// ConnManagerParams.setTimeout(params, 20000);
// get.setParams(params);
HttpClient client = new DefaultHttpClient();
try {
HttpResponse response = client.execute(get);
if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
String result = EntityUtils.toString(response.getEntity());
return result;
} else {
return "-2";
}
} catch (Exception e) {
e.printStackTrace();
}
return "-2";
}
HttpURLConnection 方式:
=====================
//HttpURLConnection get
public void sendSms() throws Exception{
String message="货已发到";
message=URLEncoder.encode(message, "UTF-8");
System.out.println(message);
String path ="http://localhost:8083/DS_Trade/mobile/sim!add.do?message="+message;
URL url =new URL(path);
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
conn.setConnectTimeout(5*1000);
conn.setRequestMethod("GET");
InputStream inStream = conn.getInputStream();
byte[] data = StreamTool.readInputStream(inStream);
String result=new String(data, "UTF-8");
System.out.println(result);
}
HttpURLConnection方式:
//HttpURLConnection post
public static String uploads(String xml, String path, String authorization) {
try {
byte[] data = xml.getBytes("UTF-8");
URL url = new URL(path);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setConnectTimeout(8 * 1000);
conn.setReadTimeout(8 * 1000);
conn.setDoInput(true);// 允许输入
conn.setDoOutput(true);// 允许输出
conn.setUseCaches(false);
conn.setRequestMethod("POST"); // Post方式
conn.setRequestProperty("connection", "keep-alive"); // 客户端到服务器端的连接持续有效
conn.setRequestProperty("Authorization", authorization);
conn.setRequestProperty("Content-Type",
"application/json; charset=UTF-8");
conn.setRequestProperty("Content-Length",
String.valueOf(data.length));
OutputStream outStream = conn.getOutputStream();
outStream.write(data);
outStream.flush();
outStream.close();
StringBuffer buf = new StringBuffer();
String s = "";
if (conn.getResponseCode() == 200) {
InputStream in = conn.getInputStream();
BufferedReader br = new BufferedReader(
new InputStreamReader(in));
while ((s = br.readLine()) != null) {
buf.append(s);
}
br.close();
in.close();
}
return buf.toString();
} catch (Exception e) {
e.printStackTrace();
}
return "-2";
}
}
http post/get 2种使用方式的更多相关文章
- Web APi之认证(Authentication)两种实现方式【二】(十三)
前言 上一节我们详细讲解了认证及其基本信息,这一节我们通过两种不同方式来实现认证,并且分析如何合理的利用这两种方式,文中涉及到的基础知识,请参看上一篇文中,就不再叙述废话. 序言 对于所谓的认证说到底 ...
- CSS垂直居中的11种实现方式
今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...
- Android中BroadcastReceiver的两种注册方式(静态和动态)详解
今天我们一起来探讨下安卓中BroadcastReceiver组件以及详细分析下它的两种注册方式. BroadcastReceiver也就是"广播接收者"的意思,顾名思义,它就是用来 ...
- Android中Fragment与Activity之间的交互(两种实现方式)
(未给Fragment的布局设置BackGound) 之前关于Android中Fragment的概念以及创建方式,我专门写了一篇博文<Android中Fragment的两种创建方式>,就如 ...
- Android开发之基本控件和详解四种布局方式
Android中的控件的使用方式和iOS中控件的使用方式基本相同,都是事件驱动.给控件添加事件也有接口回调和委托代理的方式.今天这篇博客就总结一下Android中常用的基本控件以及布局方式.说到布局方 ...
- 通过三个DEMO学会SignalR的三种实现方式
一.理解SignalR ASP .NET SignalR 是一个ASP .NET 下的类库,可以在ASP .NET 的Web项目中实现实时通信(即:客户端(Web页面)和服务器端可以互相实时的通知消息 ...
- Hive metastore三种配置方式
http://blog.csdn.net/reesun/article/details/8556078 Hive的meta数据支持以下三种存储方式,其中两种属于本地存储,一种为远端存储.远端存储比较适 ...
- Hive的三种安装方式(内嵌模式,本地模式远程模式)
一.安装模式介绍: Hive官网上介绍了Hive的3种安装方式,分别对应不同的应用场景. 1.内嵌模式(元数据保村在内嵌的derby种,允许一个会话链接,尝试多个会话链接时会报错) ...
- HashMap两种遍历方式的深入研究
转自:http://swiftlet.net/archives/1259 HashMap的遍历有两种方式,如下所示:第一种利用entrySet的方式: 1 2 3 4 5 6 7 Map map ...
- JavaScript 函数的两种声明方式
1.函数声明的方式 JavaScript声明函数有两种选择:函数声明法,表达式定义法. 函数声明法 function sum (num1 ,num2){ return num1+num2 } 表达式定 ...
随机推荐
- Keras官方中文文档:关于Keras模型
关于Keras模型 Keras有两种类型的模型,序贯模型(Sequential)和函数式模型(Model),函数式模型应用更为广泛,序贯模型是函数式模型的一种特殊情况. 两类模型有一些方法是相同的: ...
- 【BZOJ1006】神奇的国度(弦图)
[BZOJ1006]神奇的国度(弦图) 题面 BZOJ 题解 直接参考弦图的做法 #include<iostream> #include<cstdio> #include< ...
- 1.4 如何在main()方法之前执行输出“hello world”
public class Test{ static{ System.out.println("hello world"); } public static void main(St ...
- webuploader配置
做图片上传的时候用webuploader是个不错的选择,他可以通过简单的配置实现图片的上传预览和处理. <!--引入CSS--> <link rel="stylesheet ...
- 变量类型、sprintf、不同类型之间的混合运算
char 默认signed char 取值范围-128~127 unsigned char 取值范围0~255 unsigned char = 0 与unsigned char =‘0’是等效的 sp ...
- 分布式存储系统-HBASE
简介 HBase –Hadoop Database,是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,利用HBse技术可在廉价PC Server上搭建起大规模结构化存储集群.HBase利用Had ...
- 那些年踩过的WebAPI的坑(一)
---恢复内容开始--- Visual Studio创建一个web项目, 在下一步的时候创建WebAPI项目的时候勾选web API之后,系统会生成一个web项目. 首先看一下webapi的路由配置, ...
- NYOJ一种排序
//最重要的收获就是懂得了,还可以调用库函数直接对结构体进行排序sort(const void *,const void *,cmp) /* bool cmp(rect c,rect d) { if( ...
- NOIP2015 D2T3 洛谷2680 BZOJ4326 运输计划 解题报告
前言:个人认为这是历年NOIP中比较简单的最后一题了,因此将自己的思路与大家分享. 题目大意: 给一棵无根树,给出m条路径.允许将树上的一条边的权值改为0.求m条路径长度最大值的最小值.n,m< ...
- 修改WordPress后台登录地址,提高安全性
大家都知道,WordPress默认的后台登陆地址是http://[你的域名]/wp-admin,今天就来讲讲怎么修改WordPress后台登录地址,首先要知道为什么要修改WordPress后台登录地址 ...