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 ...
随机推荐
- c++11 enable_shared_from_this
本质的原因:raw data和引用计数的管理块,可能是分开的 使用场景: 需要在对象中得到shared ptr, 错误的代码:直接构造新的shared_ptr<A>对象,两个shared ...
- C#-WinForm-★★★★★跨窗体 构造函数传值 及应用—登录式窗口传值、如何关闭主页面时关闭应用程序、如何打开唯一窗口★★★★★
构造函数可以传任意类型的值,并可以同时传多个值 结构函数传值的初步应用——简单的登陆式界面 现在我有两个窗体Form3和Form4,如下,如何点击Form3中的按钮后,打开Form4并将Form3中的 ...
- iOS8 dismissViewControllerAnimated:YES在Show Segue不工作
最近使用iOS8 Sdk(xcode6.1.1)使用Show Segue功能,V_A视图push到V_B视图,然后想通过使用按键返回V_A,我记得ios6的时候可以使用[self dismissVie ...
- 日语N5学习
副词与连接词 ~から: 从-(表示时间.场所起点) ~まで: 到-(表示时间.场所终点) と: 和(并列时用) えーと: 嗯 いっしょに: 一起 ちょっと: 一点儿 いつも: 经常.总是 ときどき: ...
- 达人篇:3.1.3)FAI 首件检验
本章目的:了解FAI. 1)定义: FAI: First Article Inspection Report . 汉语译作:首件全尺寸检验报告. 2)目的 制作FAI报告是为了检查成型后的产品尺寸是否 ...
- POJ_2886 Who Gets the Most Candies? 【二分+树状数组】
一.题目 POJ2886 二.分析 这个题目吧,开始没读懂,做的时候也没懂,WA的时候懂了.假设是第p个出圈的人有一个对应的因子个数$F(p)$,那么,题目求的就是这个$F(p)$最大的对应的人. 1 ...
- UML图及Visio 2010使用总结
1. 关于UML9种图的详细介绍: 参考链接A:UML 九种图详解 参考链接B:UML的九种图+包图 2. 深入探究类图: 类图间的关系:泛化 .继承.实现.依赖.关联.聚合.组合: 参考链接A:ht ...
- 【Excel】数据字典制作
以下是设计的一种新的数据字典!!! 在Excle中新建2个sheet页,分别是:[主页]与[数据字典] 1.主页内容 E5对应的公式如下:=HYPERLINK("#'数据字典'!C" ...
- input输入框中只能输入数字,非数字字符自动清除
前言:项目中有个缴纳保证金的功能,要是输入框只能输入数字,不能输入其他字符. ①HTML代码:<input class="input-box" type="text ...
- orcale 之函数
我们知道存储过程的调用是一条 PL/SQL 语句.那么对于一些表达式我们用什么呢?这里函数的功能就会体现出来了. 函数和过程在创建方式上有很多的类似地方,也是编译后放入内存中以供用户使用,只不过函数调 ...