http请求,HttpClient,调用短信接口
项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码。
因为项目是通过maven管理的,所以需要在pom.xml文件中引入jar包,
maven引入的jar包:
<!-- https://mvnrepository.com/artifact/commons-httpclient/commons-httpclient -->
<dependency>
<groupId>commons-httpclient</groupId>
<artifactId>commons-httpclient</artifactId>
<version>3.1</version>
</dependency>
这里需要注意的是,因为但因版本兼容等原因,开始引入的并不是目前最新的 3.1 版本,而是比较老的2.*版本,这个版本没有设置字符类型的方法,所以只能用默认的字符类型发送数据,结果返回Fail,后来测试在没有汉字的判断时可以返回OK,又通过Postman查看:

因此确定时发送请求中汉字的问题,后来修改为最新的3.1版本之后设置字符串格式 “UTF-8”,可以正常发送请求并返回true。
发送请求的部分代码:
String info = null;
try{
HttpClient httpclient = new HttpClient();//方法调用 PostMethod post = new PostMethod("http://192.168.1.99:8088/sms/sendCode");//接口地址 post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");//格式转换 post.addParameter("signName", "淄博**智能");
post.addParameter("templateCode", "SMS_114600059");
post.addParameter("expireTime", "300");
post.addParameter("count", "4");
post.addParameter("bizId", "learn");
post.addParameter("phoneNumbers", list.get(0).getPhone()); httpclient.executeMethod(post);
info = new String(post.getResponseBody(),"UTF-8");
mav.addObject("apimsg",info);
}catch (Exception e) {
e.printStackTrace();
}
返回的OK发送请求成功,
返回的later发送过请稍后,
返回的Fail失败,之前没有设置字符编码类型是就是返回这样,
还有因为参数名写错提示的返回参事错误等等。
用户输入验证码判断是否正确:
HttpClient httpclient = new HttpClient();//方法调用
PostMethod post = new PostMethod("http://192.168.1.99:8088/sms/validCode");//接口地址
//这里没有设置字符编码,也可以通过,因为没有汉字
post.addParameter("bizId", "learn");
post.addParameter("code", pnum);
post.addParameter("phoneNumber", "17560306966");
httpclient.executeMethod(post); info = new String(post.getResponseBody());
这里是根据输入的验证码判断是否正确,返回OK代表输入的验证码和发送的验证码一致。
http请求,HttpClient,调用短信接口的更多相关文章
- 发送短信验证码及调用短信接口与C# 后台 post 发送
#region 调用短信接口 public ActionResult Mobile(string Tel)//调用接口 { Random rm = new Random(); int i; strin ...
- asp调用短信接口实现用户注册
前几天做一个asp语言开发的网站需要实现用户注册短信验证功能,就研究了一下如何实现,简单给大家分享下调用过程. 首先需要找到一个第三方短信接口,当时用的是动力思维乐信的短信接口. 首先需要先注册个动力 ...
- C#调用短信接口(通过简单的工厂模式整合多个短信平台)
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- nginx限制IP恶意调用短信接口处理方法
真实案例: 查看nginx日志,发现别有用心的人恶意调用API接口刷短信: /Jun/::: +] "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:27.0) ...
- java代码实现调用短信接口,发送短信验证。
一.代码示例 package com.aaa.zxf.login; import org.apache.commons.httpclient.HttpClient; import org.apache ...
- C# 调用短信接口
using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...
- 调用短信接口,先var_dump()看数据类型是object需要json_decode(json_encode( $resp),true)转换成array
返回的数据.先看类型,如果是object类型 先json_encode, 再json_decode,加true 转换成数组 $resp = $c->execute($req); var_dump ...
- 短信接口调用以及ajax发送短信接口实现以及前端样式
我们短信api用的是云信使平台提供的非免费短信服务:官网提供的demo有两种,分别是function加其调用.class文件加其调用. 在这里我们用class文件加调用: 首先,ThinkPHP里面自 ...
- PJzhang:exiftool图片信息提取工具和短信接口调用工具TBomb
猫宁!!! 作者:Phil Harvey 这是图片信息提取工具的地址: https://sno.phy.queensu.ca/~phil/exiftool/ 网站隶属于Sudbury 中微子天文台,从 ...
随机推荐
- sqlserver 2008备份与还原
一.SQL数据库的备份: 1.依次打开 开始菜单 → 程序 → Microsoft SQL Server 2008 → SQL Server Management Studio → 数据库:Dside ...
- JQ笔记-加强版
Query初级 一.介绍.基本写法 什么是JQ: 一个优秀的JS库,大型开发必备 JQ的好处: 简化JS的复杂操作 不再需要关心兼容性 提供大量实用方法 如何学习JQ: www.jquery. ...
- CentOS7,安装Tomcat8.5、JDK1.8,并设置开机启动(Linux CentOS Tomcat、JDK+Tomcat、Tomcat开机自启动)
1.下载JDK1.8.Tomcat8 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...
- 2017北京国庆刷题Day3 afternoon
期望得分:100+0+30=130 实际得分:100+36.5+0=136.5 T3 一个变量写混了,丢了30.. 模拟栈 #include<cstdio> #include<cst ...
- python匹配某个中文字符
python2.7对中文的支持不好是众所周知的,现在遇到这样一个需求,要匹配某个中文字符.查了一个资料,思路就是转化为unicode进行比较,记录如下: line = '参考答案: A' # gbk ...
- 【CodeForces】704 C. Black Widow 动态规划+模拟
[题目]C. Black Widow [题意]给定一个表达式,形式为(...)^(...)^......^(...)=1(n个括号),括号中为1~2个值取或.有m个变量,给出表达式的值为xi或 !xi ...
- Array和String测试与java.String.split
java.string.split() 存在于java.lang包中,返回值是一个数组. 作用是按指定字符或者正则去切割某个字符串,结果以字符串数组形式返回. 例 String [] toSort = ...
- 使用Docker 快速搭建nuget本地服务器,Hosting private nuget server using docker in seconds!
Server #below line automatically creates the folder, mount the volumes and maps the ports. docker ru ...
- Metasploit 进阶
本文是"T00LS Metasploit(第二季)"的文档版,是个人在观看视频动手操作的一个记录,仅供学习.文中会介绍Metasploit的一些基本使用:主要包括远程代码执行.MI ...
- ThinkPHP自定义错误页面、成功页面及异常页面
为什么会选择 ThinkPHP 呢?首先,作为一款国产PHP框架,文档肯定比国外那些框架要丰富的多,而且容易看懂:其次,ThinkPHP已经发展了七八年的时间了,相对来说已经比较成熟了:当然,最重要的 ...