httpclient x-www-form-urlencoded
1. 使用Apache httpclient提交post请求
http工具方法(需指定编码, 否则出错,这里用的UTF-8)
public static String postWithParamsForString(String url, List<NameValuePair> params){
HttpClient client = HttpClients.createDefault();
HttpPost httpPost = new HttpPost(url);
String s = "";
try {
httpPost.setEntity(new UrlEncodedFormEntity(params,"UTF-8"));
httpPost.setHeader("Content-type", "application/x-www-form-urlencoded");
HttpResponse response = client.execute(httpPost);
int statusCode = response.getStatusLine().getStatusCode();
if(statusCode==200){
HttpEntity entity = response.getEntity();
s = EntityUtils.toString(entity);
}
} catch (IOException e) {
e.printStackTrace();
}
return s;
}
测试方法
public static void main(String[] args) { String smsKey = "aaaaaaa";
String content = "您的订单号是:4322311";
String phone = "111111";
String smsSecret = "bbbb";
String smsUrl = "http://iccc/v1/message/content/send";
List<NameValuePair> params = new ArrayList<NameValuePair>();
String timestamp = String.valueOf(System.currentTimeMillis());
String signContent = "appkey=" + smsKey + "&content=" + content + "&mobile=" + phone + "×tamp="
+ timestamp + "&appsecret="+ smsSecret;
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
NameValuePair pair = new BasicNameValuePair("appkey", smsKey);
NameValuePair pair2 = new BasicNameValuePair("content", content);
NameValuePair pair3 = new BasicNameValuePair("mobile", phone);
NameValuePair pair4 = new BasicNameValuePair("timestamp", timestamp);
NameValuePair pair5 = new BasicNameValuePair("sign", sign);
params.add(pair);
params.add(pair2);
params.add(pair3);
params.add(pair4);
params.add(pair5);
String postForString = HttpUtil.postWithParamsForString(smsUrl, params);
}
2. okhttp 实现
import okhttp3.*;
import org.apache.commons.codec.digest.DigestUtils; import java.io.IOException;
import java.util.concurrent.TimeUnit; /**
* Created by admin on 2018/1/22.
*/
public class SmsSender { private static final OkHttpClient client = new OkHttpClient.Builder().
connectionPool(new ConnectionPool(100,10, TimeUnit.MINUTES))
.connectTimeout(5,TimeUnit.SECONDS)
.readTimeout(5, TimeUnit.SECONDS).build(); public static String postFormBody(String url, FormBody body){
Request request = new Request.Builder().url(url)
.post(body).build();
try {
Response response = client.newCall(request).execute();
return response.body().string();
} catch (IOException e) {
e.printStackTrace();
}
return "";
} public static void main(String[] args) throws IOException {
String content = "您的订单号是:4322311";
String mobile = "1314455";
String timestamp = String.valueOf(System.currentTimeMillis());
String signContent = "cc";
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
FormBody body = new FormBody.Builder()
.add("content",content).add("mobile",mobile)
.add("timestamp",timestamp).add("sign",sign)
.build();
String url = "dd/v1/message/content/send";
String result = postFormBody(url, body);
System.out.println(result);
}
}
3. postman 测试
选中x-www-form-urlencoded 输入相应key value
httpclient x-www-form-urlencoded的更多相关文章
- SpringMvc Json LocalDateTime 互转,form urlencoded @ModelAttribute 转换
JDK8 的LocalDate 系列日期API ,比Date 或者 Calendar 都好用很多,但是在SpringMvc 自动装配会有点小问题 会导致抛出类似异常 default message [ ...
- Web Api 简介
ASP.NET Web API 简介 ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP. ...
- ASP.NET Web API 简介
ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...
- Python开发【第十六篇】:AJAX全套
概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...
- ASP.NET Web API 上传文件
HTML表单: <form id="form1" method="post" enctype="multipart/form-data" ...
- ASP.NET Web API 特性
ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...
- WebForm在JS中从Dropdownlist添加数据,在C#段读取
(1)页面设置和JS代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Def ...
- Web Api 如何做上传文件的单元测试
代码如下: //--------上传------------ HttpClient client = new HttpClient(); #region MultipartFormDataConten ...
- js控制TR的显示影藏
在很多现实的场景中,有的文本框我们希望在选择“是”的按钮之后才出现,这就需要js控制TR的隐藏和显示,(div的影藏显示类似) 以下是一段选择是的按钮就显示身高和体重的文本框的代码.注意:ready方 ...
- 平衡树 - 红黑树(JQuery+Js+Canvas版本的,帮助大家理解)
红黑树 1.红黑树介绍 年写的一篇论文中获得的.它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目. 2 ...
随机推荐
- 2016级算法第五次上机-G.ModricWang的撒币游戏
1062 ModricWang的撒币游戏 思路 此题为2017年ACM-ICPC亚洲区域赛乌鲁木齐赛区的A题,现场94个队中有38个队做出此题.在这里作为满分以外的题,是为了让大家看一下外面一些题的风 ...
- java面向对象概念2
一.理解“万事万物皆对象”. 1.在java语言范畴中,我们都将功能.结构等封装到类中,通过类的实例化,来调用具体的功能结构. 2.涉及到java语言与前端html.后端的数据库交互时,前后端的结构在 ...
- turtle库笔记
turtle库是学习python的一个重要数据库,在当下是一个很有趣流行的绘制图像的数据库,她把画笔想象为一只小乌龟在爬行,让小乌龟在一个以横轴为x,纵轴为y的画布上行驶,并且会有多样的行驶角度,速度 ...
- github创建本地库后关联远程库
在进行新项目开发时,有时候并不一定先创建远程库,而是先在本地将项目创建,到一定阶段后再与远程库关联.下面步骤解决本地库与远程库在这种情形. 1. 初始化本地库,既然项目已经创建了,相信这个也已经知道了 ...
- Unity QualitySettings.antiAliasing 抗锯齿
QualitySettings.antiAliasing 抗锯齿 Description 描述 Set The AA Filtering option. 设置AA过滤选项. The AntiAliaz ...
- Mac下配置maven和集成到ecclipse(Mac 10.12)
1.到官网下载maven,http://maven.apache.org/download.cgi 下载好的tar.gz包解压出来,并重命名为maven3,拷贝到/usr/local目录下 2.配置环 ...
- (转)Linux运维MySQL必会面试题100道
老男孩教育Linux运维班MySQL必会面试题100道 (1)基础笔试命令考察 (要求:每两个同学一组,一个口头考,一个上机实战作答,每5个题为一组,完成后换位) 1.开启MySQL服务 2.检测端口 ...
- jquery 部分函数源码解析
JSON.stringify源码(在看extend文档的时候看到) var object1 = { apple: 0, banana: {weight: 52, price: 100}, cherry ...
- 【Qt开发】01-第一个Qt程序Hello World!
一:说在前头 我的第一份工作是做生产工具,当时用的MFC,IDE是VC6.0,现在想想真是古董级别,10年至今,微软也一直没有对MFC进行升级, 冥冥中感觉微软自己都放弃MFC了,市场上貌似MFC的岗 ...
- light table 添加行号 更新
在上一个笔记修改完字体后.再添加上行号