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 ...
随机推荐
- js数组的常用操作
数组合并 var arr=[1,"abc","张三","122"]; var b=["今天天气不错","适合学 ...
- 题目1010:A + B(字符串拆分)
问题来源 http://ac.jobdu.com/problem.php?pid=1010 问题描述 给我们一行标准的字符串,整行读入之后,把它拆开转换成数字进行计算. 问题分析 首先考虑一个问题:如 ...
- linux命令行添加图形化界面
安装一个图形化的包即可!! yum update grub2-common yum install fwupdate-efi yum groupinstall "GNOME Desktop& ...
- MyEclipse配置,每次打开server中都没有weblogic
最近在myeclipse新配了个weblogic,结果每次打开myeclipse在server中都看不到weblogic,得重新去配置页面走一遭才能出现.很麻烦. 后来在网上找了找,找到一个办法: 在 ...
- CDQZ Day3
模拟题 day3出题人: liu_runda题目名称 摆渡 摆车 背包源程序文件名 boat.cpp ju.cpp pack.cpp输入文件名 boat.in ju.in pack.in输出文件名 b ...
- 整理的最全 python常见面试题
整理的最全 python常见面试题(基本必考)① ②③④⑤⑥⑦⑧⑨⑩ 1.大数据的文件读取: ① 利用生成器generator: ②迭代器进行迭代遍历:for line in file; 2.迭代 ...
- 查找Ubuntu下包的归属
今天在制作docker时,发现我的程序有些依赖的包不太好找应该安装什么. 在centos下面,可以用命令: rpm -qf <libraryname> 在Ubuntu下面,发现一个网站基本 ...
- Unity 动画 命名
unity标准的动画命名格式是 ?模型名@动画名 如boss1@idle ,这样导入进来之后unity会自动给这个动画命名为idle而不是Take 001.
- Java学习之路(三):Java中的数组
数组的概述和定义的格式 数组的作用: 用来存储同种数据类型的多个值 数组的基本概念: 数组是存储同一种数据类型多个元素的集合.就相当于一个容器. 注意:数组既可以存储基本数据类型,也可以存储引用数据类 ...
- 案例19-页面使用ajax显示类别菜单
1 版本一 版本只能在首页显示类别,当切换到了其它页面就不会显示 1 web层IndexServlet代码 package www.test.web.servlet; import java.io.I ...