一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - java servlet手機app訪問接口(二)短信驗證

java servlet手機app訪問接口(二)短信驗證

2020-07-16 11:47L-H Java教程

這篇文章主要介紹了java servlet手機app訪問接口(二),短信驗證,具有一定的參考價值,感興趣的小伙伴們可以參考一下

今天找了幾個短信平臺,其實最想使用的一個是sharesdk,使用它上面http api短信功能,不僅價格低,而且最少可以充值100RMB,但是審核過于嚴格,對應(yīng)APP還必須集成他們的短信功能,而且要上傳審核也得20多天,我也只是想找個短信平臺測試下而已,所以它就算了。然后就在百度隨便在好了一個短信平臺www.wasun.cn,暫時感覺它還不錯,至少它給的測試帳號接受短信的速度沒超過5秒,我看了下一般是3秒甚至更快。 下面我就說說調(diào)用短信接口的方法,以及使用中途遇到的問題。

一、httprequest方式請求方法

他給的DOMO其實已經(jīng)封裝好方法的,是使用httpClient請求的,以前在.NET中使用過這個類, 而且.net中還直接有HttpWebRequest這個類,我看了下代碼在java中它的功能應(yīng)該是被封裝到了URLConnection這個類里面,由于時間,封裝的方法我也是從網(wǎng)上找的沒深入研究,不過應(yīng)該和.net中的HttpWebRequest是一個含義。下面貼代碼,包括DEMO代的httpClient這個類的代碼也一同貼上。

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package Helper;
 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.io.UnsupportedEncodingException;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
 
public class HttpRequest {
  /**
   * 向指定URL發(fā)送GET方法的請求
   *
   * @param url
   *      發(fā)送請求的URL
   * @param param
   *      請求參數(shù),請求參數(shù)應(yīng)該是 name1=value1&name2=value2 的形式。
   * @return URL 所代表遠程資源的響應(yīng)結(jié)果
   */
  public static String sendGet(String url, String param) {
    String result = "";
    BufferedReader in = null;
    
    try {
      String urlNameString = url + "?" + param;
      URL realUrl = new URL(urlNameString);
      // 打開和URL之間的連接
      URLConnection connection = realUrl.openConnection();
      // 設(shè)置通用的請求屬性
      connection.setRequestProperty("accept", "*/*");
      connection.setRequestProperty("connection", "Keep-Alive");
      connection.setRequestProperty("user-agent",
          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 建立實際的連接
      connection.connect();
      // 獲取所有響應(yīng)頭字段
      Map<String, List<String>> map = connection.getHeaderFields();
      // 遍歷所有的響應(yīng)頭字段
      for (String key : map.keySet()) {
        System.out.println(key + "--->" + map.get(key));
      }
      // 定義 BufferedReader輸入流來讀取URL的響應(yīng)
      in = new BufferedReader(new InputStreamReader(
          connection.getInputStream()));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("發(fā)送GET請求出現(xiàn)異常!" + e);
      e.printStackTrace();
    }
    // 使用finally塊來關(guān)閉輸入流
    finally {
      try {
        if (in != null) {
          in.close();
        }
      } catch (Exception e2) {
        e2.printStackTrace();
      }
    }
    return result;
  }
 
  /**
   * 向指定 URL 發(fā)送POST方法的請求
   *
   * @param url
   *      發(fā)送請求的 URL
   * @param param
   *      請求參數(shù),請求參數(shù)應(yīng)該是 name1=value1&name2=value2 的形式。
   * @return 所代表遠程資源的響應(yīng)結(jié)果
   */
  public static String sendPost(String url, String param) {
    PrintWriter out = null;
    BufferedReader in = null;
    String result = "";
    try {
      URL realUrl = new URL(url);
      // 打開和URL之間的連接
      URLConnection conn = realUrl.openConnection();
      // 設(shè)置通用的請求屬性
      conn.setRequestProperty("accept", "*/*");
      conn.setRequestProperty("connection", "Keep-Alive");
      conn.setRequestProperty("user-agent",
          "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
      // 發(fā)送POST請求必須設(shè)置如下兩行
      conn.setDoOutput(true);
      conn.setDoInput(true);
      // 獲取URLConnection對象對應(yīng)的輸出流
      out = new PrintWriter(conn.getOutputStream());
      // 發(fā)送請求參數(shù)
     
      out.print(param);
      // flush輸出流的緩沖
      out.flush();
      // 定義BufferedReader輸入流來讀取URL的響應(yīng)
      in = new BufferedReader(
          new InputStreamReader(conn.getInputStream()));
      String line;
      while ((line = in.readLine()) != null) {
        result += line;
      }
    } catch (Exception e) {
      System.out.println("發(fā)送 POST 請求出現(xiàn)異常!"+e);
      e.printStackTrace();
    }
    //使用finally塊來關(guān)閉輸出流、輸入流
    finally{
      try{
        if(out!=null){
          out.close();
        }
        if(in!=null){
          in.close();
        }
      }
      catch(IOException ex){
        ex.printStackTrace();
      }
    }
    
    try {
      result= new String(result.getBytes("ISO8859-1"),"UTF-8");
    } catch (UnsupportedEncodingException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return result;
  
}

二、官方DEMO httpClient方式請求代碼

 

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
//import java.io.FileInputStream;
//import java.io.FileNotFoundException;
 
import java.io.IOException;
 
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.methods.PostMethod;
 
import org.dom4j.Document; 
import org.dom4j.DocumentException;
import org.dom4j.DocumentHelper; 
import org.dom4j.Element; 
 
public class sendsms {
  
  private static String Url = "http://121.199.?.178/webservice/sms.php?method=Submit";
  
  
  
  public static void main(String [] args) {
    
    HttpClient client = new HttpClient();
    PostMethod method = new PostMethod(Url);
      
    //client.getParams().setContentCharset("GBK");   
    client.getParams().setContentCharset("UTF-8");
    method.setRequestHeader("ContentType","application/x-www-form-urlencoded;charset=UTF-8");
 
    String content = new String("您的驗證碼是:7528。請不要把驗證碼泄露給其他人。");
    
    NameValuePair[] data = {//提交短信
        new NameValuePair("account", "用戶名"),
        new NameValuePair("password", "密碼"), //密碼可以使用明文密碼或使用32位MD5加密
        //new NameValuePair("password", util.StringUtil.MD5Encode("密碼")),
        new NameValuePair("mobile", "手機號碼"),
        new NameValuePair("content", content),
    };
    
    method.setRequestBody(data);   
    
    
    try {
      client.executeMethod(method); 
      
      String SubmitResult =method.getResponseBodyAsString();
          
      //System.out.println(SubmitResult);
 
      Document doc = DocumentHelper.parseText(SubmitResult);
      Element root = doc.getRootElement();
 
 
      String code = root.elementText("code"); 
      String msg = root.elementText("msg"); 
      String smsid = root.elementText("smsid"); 
      
      
      System.out.println(code);
      System.out.println(msg);
      System.out.println(smsid);
            
      if(code == "2"){
        System.out.println("短信提交成功");
      }
      
    } catch (HttpException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (DocumentException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    
    
 
  }
  0

三、調(diào)用封裝的httprequest代碼 

?
1
2
3
String  phoneMessageParameter=new String("account=?&password=wxhdcs@456&content=您的校驗碼是:【變量】。請不要把校驗碼泄露給其他人。&mobile=?&stime=2012-08-01%208:20:23&sign=?&type=pt&extno=");
String returnResult=HttpRequest.sendPost("http://121.?.16.178/webservice/sms.php?method=Submit", phoneMessageParameter);
out.println("<script> alert("+returnResult+");</script>");

如果使用這個平臺要注意下,就是他官方的文檔中的參數(shù)名是錯的,發(fā)的DEMO中才是正確的,還有他的接口是用webserver寫的,返回的不是json或則XML數(shù)據(jù),而是一個標準的html頁面,然后需要的內(nèi)容都寫在html中的標簽中, 如果是測試content短信內(nèi)容這個參數(shù)必須寫他們規(guī)定的,否則報錯,如果正式購買可以自己定模版內(nèi)容。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持服務(wù)器之家。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 欧美日韩中文字幕一区二区高清 | 国产成人免费高清激情明星 | 2022日韩理论片在线观看 | 国产剧情麻豆刘玥视频 | 成人女人天堂午夜视频 | 国产精品一区二区在线观看完整版 | 欧美日本一道高清二区三区 | 国语刺激对白勾搭视频在线观看 | 亚洲第一在线播放 | 午夜亚洲WWW湿好大 午夜想想爱 | 王淑兰李思雨李铁柱乡村小说免费 | 精品午夜寂寞黄网站在线 | 亚洲精品中文字幕第一区 | 美女一线天 | 国产成人精品高清免费 | 欧美一级片在线免费观看 | 天天狠天天透 | 九九热在线免费观看 | 欧美撒尿屁股嘘嘘撒尿 | 亚洲ⅴa偷拍在线影院 | 99rv精品视频在线播放 | 学生小泬无遮挡女HD | 国产日韩一区二区三区 | 91中文字幕yellow字幕网 | beeg最新| 韩剧hd| 香蕉成人国产精品免费看网站 | 免费精品99久久国产综合精品 | 日本国产高清色www视频在线 | 国产免费丝袜调教视频 | 操操综合网 | 成人在线免费看 | 国产精品男人的天堂 | 久久久久伊人 | 99久久精品免费看国产 | 亚洲乱亚洲23p女 | 国产视频久久 | 国产精品视频久久久久 | 三级全黄裸体 | 午夜dj影院在线观看完整版 | 狠狠色狠狠色综合日日小蛇 |