HttpClient短信接口

HttpClient简介

HTTP 协议可能是现在 Internet 上使用得最多、最重要的协议了,越来越多的 Java 应用程序需要直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的 java.net 包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。HttpClient 已经应用在很多的项目中,比如 Apache Jakarta 上很著名的另外两个开源项目 Cactus 和 HTMLUnit 都使用了 HttpClient。更多信息请关注http://hc.apache.org/

 

  • (1) GET方法

  • 使用 HttpClient 需要以下 6 个步骤:

  • 1. 创建 HttpClient 的实例
    2. 创建某种连接方法的实例,在这里是GetMethod。在 GetMethod 的构造函数中传入待连接的地址
    3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
    4. 读 response
    5. 释放连接。无论执行方法是否成功,都必须释放连接
    6. 对得到后的内容进行处理
    (2)POST方法
    根据RFC2616,对POST的解释如下:POST方法用来向目的服务器发出请求,要求它接受被附在请求后的实体,并把它当作请求队列(Request-Line)中请求URI所指定资源的附加新子项。POST被设计成用统一的方法实现下列功能:
    对现有资源的注释(Annotation of existing resources)
    向电子公告栏、新闻组邮件列表或类似讨论组发送消息
    提交数据块,如将表单的结果提交给数据处理过程
    通过附加操作来扩展数据库
    调用HttpClient中的PostMethod与GetMethod类似,除了设置PostMethod的实例与GetMethod有些不同之外,剩下的步骤都差不多。在下面的例子中,省去了与GetMethod相同的步骤,只说明与上面不同的地方,并以登录清华大学BBS为例子进行说明。

 

HttpClient 功能介绍

以下列出的是 HttpClient 提供的主要的功能,要知道更多详细的功能可以参见 HttpClient 的主页。

  • 实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)

  • 支持自动转向

  • 支持 HTTPS 协议

  • 支持代理服务器等

发送验证码:

@ResponseBody
    @PostMapping("/editphone")
    public OperationResult editPhone(String phone){
         String info = null;  
            try{  
                HttpClient httpclient = new HttpClient();//方法调用  
                
                
                PostMethod post = new PostMethod("*****");//接口地址  
                
                post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"UTF-8");//格式转换  
                
                
                post.addParameter("signName", "****");
                post.addParameter("templateCode", "****");
                post.addParameter("expireTime", "300");
                post.addParameter("count", "4");
                post.addParameter("bizId", "***");
                post.addParameter("phoneNumbers", phone);
                
                httpclient.executeMethod(post);  
                info = new String(post.getResponseBody(),"UTF-8");
            }catch (Exception e) {  
                e.printStackTrace();  
            }  
        return new OperationResult(true,"发送成功");
    }

验证验证码是否正确

    @ResponseBody
    @PostMapping("/editphone1")
    public OperationResult editPhone1(String phone,String pnum){
        String info = null;  
        try {
            HttpClient httpclient = new HttpClient();//方法调用  
            PostMethod post = new PostMethod(****");//接口地址  
            post.addParameter("bizId", "***");
            post.addParameter("code", pnum);
            post.addParameter("phoneNumber", phone);
            httpclient.executeMethod(post); 
            
            info = new String(post.getResponseBody());
        }catch (Exception e) {  
            e.printStackTrace();  
        } 
        if("OK".equalsIgnoreCase(info)){
            
            User u=new User();
            u.setId(user.getId());
            u.setPhone(phone);
            OperationResult c = userService.updatePhonr(u);
            return c ;
        }
        return new OperationResult(true,"chenggong");
    }

 

posted @ 2017-12-23 16:31  *眉间缘*  阅读(671)  评论(0编辑  收藏  举报