分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

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

发布时间:2023-09-06 01:32责任编辑:沈小雨关键词:http

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

因为项目是通过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,调用短信接口

原文地址:http://www.cnblogs.com/jiangwz/p/8093389.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved