zoukankan      html  css  js  c++  java
  • 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");
        }
  • 相关阅读:
    AxWindowsMediaPlayer的详细用法
    C# 播放器控件的常用方法
    在 C# 中使用文件名启动应用程序
    备份和恢复Android手机的NAND分区
    刷Recovery的方法
    WPF RadioButton的探究,为啥选中一个其他都自动不选中了呢?
    WPF大牛Josh Smith 转投 iOS 的怀抱
    终端服务的剪贴板的缺陷,导致WPF调用Clipboard.SetText() 失败
    用df命令查看分区情况
    WPF与输入法冲突研究之二:TextInput事件的BUG?
  • 原文地址:https://www.cnblogs.com/NCL--/p/8093726.html
Copyright © 2011-2022 走看看