前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >http请求,HttpClient,调用短信接口

http请求,HttpClient,调用短信接口

作者头像
二十三年蝉
发布2018-02-28 11:55:12
5.7K0
发布2018-02-28 11:55:12
举报
文章被收录于专栏:闻道于事闻道于事

项目中安全设置找回密码的功能,需要通过发送短信验证绑定手机,通过绑定的手机号验证并重新设置密码。

因为项目是通过maven管理的,所以需要在pom.xml文件中引入jar包,

maven引入的jar包:

代码语言:javascript
复制
        <!-- 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。

发送请求的部分代码:

代码语言:javascript
复制
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失败,之前没有设置字符编码类型是就是返回这样,

还有因为参数名写错提示的返回参事错误等等。

用户输入验证码判断是否正确:

代码语言:javascript
复制
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代表输入的验证码和发送的验证码一致。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-12-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
验证码
腾讯云新一代行为验证码(Captcha),基于十道安全栅栏, 为网页、App、小程序开发者打造立体、全面的人机验证。最大程度保护注册登录、活动秒杀、点赞发帖、数据保护等各大场景下业务安全的同时,提供更精细化的用户体验。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档