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 + "&timestamp="
+ 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的更多相关文章

  1. SpringMvc Json LocalDateTime 互转,form urlencoded @ModelAttribute 转换

    JDK8 的LocalDate 系列日期API ,比Date 或者 Calendar 都好用很多,但是在SpringMvc 自动装配会有点小问题 会导致抛出类似异常 default message [ ...

  2. Web Api 简介

    ASP.NET Web API 简介  ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP. ...

  3. ASP.NET Web API 简介

    ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...

  4. Python开发【第十六篇】:AJAX全套

    概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...

  5. ASP.NET Web API 上传文件

    HTML表单: <form id="form1" method="post" enctype="multipart/form-data" ...

  6. ASP.NET Web API 特性

    ASP.NET MVC 4 包含了 ASP.NET Web API, 这是一个创建可以连接包括浏览器.移动设备等多种客户端的 Http 服务的新框架, ASP.NET Web API 也是构建 RES ...

  7. WebForm在JS中从Dropdownlist添加数据,在C#段读取

    (1)页面设置和JS代码 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Def ...

  8. Web Api 如何做上传文件的单元测试

    代码如下: //--------上传------------ HttpClient client = new HttpClient(); #region MultipartFormDataConten ...

  9. js控制TR的显示影藏

    在很多现实的场景中,有的文本框我们希望在选择“是”的按钮之后才出现,这就需要js控制TR的隐藏和显示,(div的影藏显示类似) 以下是一段选择是的按钮就显示身高和体重的文本框的代码.注意:ready方 ...

  10. 平衡树 - 红黑树(JQuery+Js+Canvas版本的,帮助大家理解)

    红黑树 1.红黑树介绍 年写的一篇论文中获得的.它是复杂的,但它的操作有着良好的最坏情况运行时间,并且在实践中是高效的:它可以在O(log n)时间内做查找,插入和删除,这里的n是树中元素的数目. 2 ...

随机推荐

  1. UIView-frame-VS-bounds

    分享链接

  2. 851 AlvinZH的鬼畜密码(背包DP大作战N)

    851 AlvinZH的鬼畜密码 思路 难题.动态规划. 先判断字符串是否合理(可翻译),然后分段处理,每一小段用动态规划求出解法数. dp[i]:字符串str[0~i]的解法数.通过判断str[i] ...

  3. js 的常用方法和对象

    每日分享: 加油!你一定可以!你是最牛逼的!!!-------------------------------------------------------------------------- - ...

  4. 04. H5标签有哪些?行内元素有哪些?块级元素有哪些?空(void)元素有哪些?行内元素和块级元素有什么区别?你工作中常用标签有什么?

    4. H5标签有哪些? 2)行内元素有哪些? a - 锚点 em - 强调 img - 图片 font - 字体设定 ( 不推荐 ) i - 斜体 input - 输入框 3)块级元素有哪些? add ...

  5. php post get 繁体、日文、韩文时 自动添加 反斜杠 问题

    做些二次开发项目,数据库.文件编码没法大规模的修改,比如二次开发一个日文系统,编码是JA16SJIS,$_POST或$_GET的信息中如果“申請”,得到的信息就会变成“申\請”,多出一个反斜杠! 先贴 ...

  6. 大数据-hadoop HA集群搭建

    一.安装hadoop.HA及配置journalnode 实现namenode HA 实现resourcemanager HA namenode节点之间通过journalnode同步元数据 首先下载需要 ...

  7. netsh命令操作ipsec

    IPsec就是IP安全筛选,本可以在本地安全策略中的窗口上进行操作添加,那么netsh也可以支持命令行操作这部分的内容. 我们的示例是禁止IP地址为192.168.1.10访问财务部某机3389端口 ...

  8. next_permutation(全排列)

    废话不多说,直接上代码,谁测试,谁知道 C++: #include<bits/stdc++.h> using namespace std; typedef long long ll; in ...

  9. 剑指offer——面试题23:链表中环的入口节点

    函数: ListNode* MeetingNode(ListNode* pHead) { if(pHead==nullptr) return nullptr; ListNode* quickNode= ...

  10. odoo 的一些orm 操作

    1.基础文件及目录结构 在认识odoo ORM框架前,先介绍一下odoo中模块目录结构.     data:存放模块预制数据 i18n:存放国际化文件 models:存放模型等py代码 securit ...