Javaのネットワークは、SMSの確認コードを送信するためにSMSを使用して構築しました

まず、登録し、ネットワークユーザーを構築するにはログインし、新たに登録されたユーザーは、テストメッセージを受信します5

組み込みメッセージングネットワークアドレス:  http://sms.webchinese.cn/default.shtml

コードに直接、詳細には触れません。ここでアカウントを登録します

pom.xmlファイル1.輸入依存

<! -短信依赖- > 
        <依存> 
            <groupIdを>コモンズ-ログイン</ groupIdを> 
            <たartifactId>コモンズ-ログイン</たartifactId> 
            <バージョン> 1.1.1 </バージョン> 
        </依存関係> 
        <依存> 
            < groupId>コモンズ・コーデック</ groupIdを> 
            <たartifactId>コモンズ・コーデック</たartifactId> 
            <バージョン> 1.4 </ version>の
        </依存関係> 
        <依存> 
            <groupIdを>コモンズ-のHTTPClient </ groupIdを> 
            <たartifactId>コモンズ-のHTTPClient </たartifactId> 
            <バージョン> 3.0.1 </バージョン>
        </依存関係>

 

2.新しいSMSツールクラスを作成しますSendMessageUtil

インポートorg.apache.commons.httpclient.Header;
 インポートorg.apache.commons.httpclient.HttpClient;
 インポートorg.apache.commons.httpclient.NameValuePair;
 インポートorg.apache.commons.httpclient.methods.PostMethod; 

インポートjava.utilのクラス.Random; 

パブリック クラスSendMessageUtil {
     プライベート 静的な 最終文字列SMS_Url = "http://sms.webchinese.cn/web_api/" ; 

    / ** 
     * @param UidのSMSのユーザーID:SMSアカウント
     * @param キーインタフェースキー:SMS調査するにはログインしてください(非パスワード)
     * @param sendPhoneNum SMS先番号
     * @paramDESCメッセージの内容
     * @return 整数(1:成功コード、その他の障害、特に注意を参照)
      * / 
    パブリック 静的整数(UID文字列、文字列のキー、sendPhoneNum文字列、文字列のDESCを){送る

        のHttpClientクライアント = 新しい新しいHttpClientを(); 
        PostMethod POST = 新しい新しいPostMethod(SMS_Url); 
        post.addRequestHeader( "コンテンツタイプ"、 "ファイルアプリケーション/ x-www-form-urlencodedで、文字セット= GBK"); // 設定トランスヘッダファイル

        // パラメータセット 
        NameValuePairsのを[] =データ{
                 新規新しい NameValuePairsの( "Uidの" 、UID)、
                 新たな新規 NameValuePairsの( "キー"キー)// 秘钥
                新規のNameValuePair( "smsMob" 、sendPhoneNum)、
                 新規のNameValuePair( "smsText" 、DESC)
        }。

        post.setRequestBody(データ)。

        してみてください{ 
            client.executeMethod(ポスト)。
        } キャッチ(例外e){e.printStackTrace(); } 


        ヘッダ[]ヘッダー = post.getResponseHeaders()。
        INTからstatusCode = post.getStatusCode()。
        System.out.println( "からstatusCode:" + からstatusCode)。
        {(ヘッダヘッダH) 
            System.out.printlnは(h.toString())。
        } 

        文字列結果 = "" ;
         試み{ 
            結果 = 新しい新しい文字列(post.getResponseBodyAsString()GetBytesメソッド( "GBK" )); 
        } キャッチ(例外E){e.printStackTrace();} 

        post.releaseConnection(); 

        戻りInteger.parseIntを(結果); 
    } 
    / ** 
     *このユーザアカウントではありません-1 
     -2インターフェースキーがより正しくない[表示キー]アカウントのログインパスワードである
     -21 MD5インターフェース鍵暗号間違った
     メッセージの-3不十分数
     -11ユーザーであります無効
     -14メッセージの内容が不正な文字表示
     -4電話番号の形式が不正である
     -41電話番号が空である
     -42メッセージの内容が空である
     -51 SMS署名フォーマットが正しくインタフェース署名フォーマットである:[署名されたコンテンツ] 
     -6 IP制限
     メッセージの数が0より大きい送信
     その他の補数
     * / 
    パブリック 静的な文字列のgetMessage(整数コード){ 
        文字列メッセージ、
        IF(コード> 0 ){ 
            メッセージ =「F SMSメッセージが達する正常に送信されました!」+コード+「記事」; 
        } 他の IF(コード-1 == ){ 
            メッセージ = "SMS-ないユーザアカウント" ; 
        } そう IF(コード== -2 ){ 
            メッセージ = "SMS-インターフェースキーが正しくありません" ; 
        } そう IF(コード== -21 ) { 
            メッセージ =「SMS-鍵暗号へのインタフェースはMD5正しくありません」
        } さもなければ  IF(コード== -3 ){ 
            メッセージ = "不足量SMS-メッセージ" ; 
        } そう IF(コード== -11 ){ 
            メッセージ = "ユーザーが無効になっているSMS-" ; 
        } そう IF(コード== - 14 ){ 
            メッセージ =「SMSメッセージの内容が不正な文字表示」; 
        } そう IF == -4(コード){ 
            メッセージ =「SMS電話番号の形式が正しくありません」; 
        } そう IF(コード== -41 ){ 
            メッセージを =「SMS-空の携帯電話番号」; 
        } IF(コード== -42 ){ 
            メッセージ =「SMS-メッセージが空である」; 
        } そう IF(コード== -51 ){ 
            メッセージインタフェース署名フォーマットなど=「SMS-メッセージ間違った署名フォーマット:[署名]コンテンツ" ; 
        } そう IF(コード== -6 ){ 
            メッセージ =" SMSをIPは、制限" ; 
        } { 
            メッセージ ="その他のエラー" ; 
        } 
        戻りメッセージ; 
    } 

    / ** 
     * 6つのランダムに生成されたコード
     * @return 
     * / 
    パブリック 静的ストリングgetRandomCode(整数コード){ 
        ランダムランダム = 新しいランダム(); 
        StringBufferの結果 = 新しいStringBufferを();
        以下のためにint型、iはコードを<; I = 0 iは++ ){ 
            result.append(にRandom.nextInt( 10 ))。
        } 
        を返す)(result.toString。
    } 
}

3.コントローラのコール層プロセス

SendMessageUtil.send(「ネットワーク構築・メッセージングアカウント」、「キー」、「受信者の携帯電話番号」、「コンテンツ送信」);

4.送信ステータスメッセージは、コンソールでクラスSendMessageUtilにメソッドのgetMessage直接呼び出しをプリントアウトすることができます

おすすめ

転載: www.cnblogs.com/zhainan-blog/p/11056624.html