今日、私はいくつかのSMSプラットフォームを見つけました。実際、私が最も使いたいのはSharesdkです。 HTTP API SMS関数を使用すると、低いだけでなく、少なくとも100rmbを充電することもできます。ただし、レビューはあまりにも厳しく、対応するアプリもSMS機能を統合する必要があり、アップロードとレビューに20日以上かかります。テストするSMSプラットフォームを見つけたいので、忘れられます。その後、www.wasun.cnのBaiduでランダムなテキストメッセージプラットフォームを撮影しました。当面は悪くないと感じました。少なくとも、それが与えたテストアカウントは、5秒以上のテキストメッセージを受信しませんでした。私はそれを見ました、そして、それは通常3秒またはさらに速いものでした。次に、SMSインターフェイスを呼び出す方法と、使用中に遭遇した問題について説明します。
1。HTTPREQUESTメソッドリクエストメソッド
彼が与えたドモは、実際にはカプセル化されており、httpclientを要求するために使用されます。彼は以前に.NETでこのクラスを使用しており、.NETにはHTTPWEBREQUESTクラスもあります。 Javaのコードを調べましたが、その機能はURLConnectionクラスにカプセル化する必要があります。時間とカプセル化の方法により、私はインターネット上の詳細な研究を研究していませんが、.NETでHTTPWebRequestと同じ意味を持つはずです。デモ生成のHTTPClientクラスのコードを含む、次のコードが投稿されています。
パッケージヘルパー。 java.io.bufferedreader; Import java.io.ioexception; Import java.io.inputStreamReader; Import java.io.printwriter; Import java.io.unsupportedencodingception; Import java.net.url; Import java.net.url; import java.net.urlconty; java.util.map; public class httprequest { /** *指定されたurl * * @param url * urlにgetメソッドリクエストを送信してリクエストを送信します * @param param * requestパラメーター、リクエストパラメーターはname1 = value1&name2 = value2の形式でなければなりません。 * @return url response rexime resime resumped remite resourceで表されるリモートリソースの結果bufferedreader in = null; try {string urlnamestring = url + "?" + param; url realurl = new url(urlnamestring); // url urlconnection connection = realur.openconnection()間の接続を開きます。 //一般リクエスト属性connection.setRequestProperty( "Accept"、 "*/*"); connection.setRequestProperty( "Connection"、 "Keep-Alive"); connection.setRequestProperty( "user-agent"、 "mozilla/4.0(互換; msie 6.0; windows nt 5.1; sv1)"); //実際の接続connection.connect(); //すべての応答ヘッダーフィールドマップ<文字列、リスト<文字列>> map = connection.getheaderfields(); //すべての応答ヘッダーフィールド(文字列キー:map.keyset()){system.out.println(key + "--->" + map.get(key)); } // bufferedreader入力ストリームを定義して、urlの応答を読み取ります= new BufferedReader(new inputstreamReader(connection.getInputStream()));文字列線; while((line = in.readline())!= null){result += line; }} catch(Exception e){system.out.println( "get要求を送信するときに例外が発生しました!" + e); e.printstacktrace(); } //最終的にブロックを使用して入力ストリームを閉じます{if(in!= null){in.close(); }} catch(例外E2){e2.printstacktrace(); }} return result; } /** *指定されたurl * @param url * urlにリクエストを送信してリクエストを送信します * @param param *リクエストパラメーター、要求パラメーターはname1 = value1&name2 = value2の形式である必要があります。 * @return応答 */ public static string sendpost(string url、string param)で表されるリモートリソースの結果{printwriter out = null; bufferedreader in = null;文字列結果= ""; try {url realurl = new URL(url); // urlconnection conn = realur.openconnection()の間の接続を開きます。 //一般リクエスト属性conn.setRequestProperty( "Accept"、 "*/*"); conn.setRequestProperty( "Connection"、 "Keep-Alive"); conn.setRequestProperty( "user-agent"、 "mozilla/4.0(互換; msie 6.0; windows nt 5.1; sv1)"); // POSTリクエストを送信するには、次の2行をconn.setDoOutput(true)に設定する必要があります。 conn.setDoinput(true); // urlConnectionオブジェクトに対応する出力ストリームを取得= new PrintWriter(conn.getOutputStream()); //リクエストパラメーターを送信してください。print(param); //フラッシュ出力ストリームのbuffer out.flush()。 // bufferedReader入力ストリームを定義して、URL応答を読み取ります= new BufferedReader(new inputStreamReader(conn.getInputStream()));文字列線; while((line = in.readline())!= null){result += line; }} catch(Exception e){System.out.println( "POSTリクエストを送信するときに例外が発生しました!" +e); e.printstacktrace(); } //最終的にブロックを使用して出力ストリームを閉じ、入力ストリームは最終的に{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-enerated catch block e.printstacktrace(); } return result; }}2。公式デモhttpclientメソッド要求コード
// java.io.fileinputStream; // Import java.io.filenotfoundection; Import java.io.ioexception; Import org.apache.commons.httpclient.httpclient; Import org.apache.commons.httpclient.httpecception; Import; org.apache.commons.httpclient.namevaluepair; Import org.apache.commons.httpclient.methods.postmethod; Import org.dom4j.document; Import org.dom.dom.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");文字列content = new String( "検証コードは7528です。検証コードを他の人に漏らしないでください。"); namevaluepair [] data = {// sms new namevaluepair( "account"、 "user name")、new namevaluepair( "password"、 "password")、//パスワードは、プレーンテキストパスワードまたは32ビットMD5を使用して暗号化できます。 number ")、new NameValuePair(" content "、content)、}; method.setRequestBody(データ); try {client.executemethod(method);文字列submitresult = method.getResponseBodyAsstring(); //system.out.println(submitresult); document doc = documenthelper.parsetext(submitresult);要素root = doc.getRootelement();文字列code = root.ElementText( "code");文字列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( "sms submission suctures"); }} catch(httpexception e){// todo auto-enerated catch block e.printstacktrace(); } catch(ioException e){// todo auto-fenated catch block e.printstacktrace(); } catch(documentexception e){// dodo auto-enerated catch block e.printstacktrace(); }} 0 3.カプセル化されたHTTPRequestコードを呼び出します
String PhonemessageParameter = new String( "account =?&password = wxhdcs@456&content =検証コードは次のとおりです。[変数]。検証コードを他の人に漏らしないでください。 returnResult = httprequest.sendpost( "http://121.?.16.178/webservice/sms.php?method=submit"、PhonemessageParameter);
このプラットフォームを使用する場合は、注意を払う必要があります。公式ドキュメントのパラメーター名は間違っており、デモは正しく、そのインターフェイスはWebServerで記述されています。 JSONまたはXMLデータではなく、標準のHTMLページを返し、必要なすべてのコンテンツはHTMLのタグに記述されます。テストコンテンツのコンテンツの場合、パラメーターは指定されたとおりに記述する必要があります。そうしないと、エラーが報告されます。正式に購入すると、テンプレートコンテンツを自分で設定できます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。