Java はフォーム データの SMS 送受信機能を実装します
モバイル インターネットの普及に伴い、SMS は人々の日常生活における重要な通信手段の 1 つになりました。一部のアプリケーション シナリオでは、フォーム データを指定された受信者に SMS 経由で送信し、ユーザーからの SMS 返信を受信する必要があります。この記事では、Java を使用してこの関数を実装する方法と、対応するコード例を紹介します。
1. SMS の送信
SMS 送信機能を実装するには、ネットワーク インターフェイスを介して SMS コンテンツを SMS ゲートウェイに送信する必要があり、SMS ゲートウェイは SMS をターゲットに送信します。携帯電話。 Java では、HTTP インターフェイスまたは SMTP インターフェイスを使用してこのタスクを実行できます。
以下は、HTTP インターフェイスを使用してテキスト メッセージを送信するためのサンプル コードです。
import java.io.BufferedReader; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; public class SmsSender { public static void main(String[] args) { try { String phoneNumber = "手机号码"; String message = "短信内容"; String username = "用户名"; String password = "密码"; String urlString = "http://sms-api.example.com/send?" + "username=" + URLEncoder.encode(username, "UTF-8") + "&password=" + URLEncoder.encode(password, "UTF-8") + "&phoneNumber=" + URLEncoder.encode(phoneNumber, "UTF-8") + "&message=" + URLEncoder.encode(message, "UTF-8"); URL url = new URL(urlString); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod("GET"); BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); String response; while ((response = reader.readLine()) != null) { System.out.println(response); } reader.close(); connection.disconnect(); } catch (Exception e) { e.printStackTrace(); } } }
コードでは、HttpURLConnection
を使用して HTTP リクエストを作成し、パラメーターを に渡します。 SMS ゲートウェイ。このうち、username
と password
は SMS ゲートウェイのアカウント番号とパスワード、phoneNumber
はターゲットの携帯電話番号、message## です。 # はテキスト メッセージの内容です。 SMS の送信結果は、
connection.getInputStream() を呼び出すことで取得できます。
import com.cloudhopper.smpp.SmppBindType; import com.cloudhopper.smpp.SmppSession; import com.cloudhopper.smpp.pdu.BindReceiver; import com.cloudhopper.smpp.pdu.DeliverSm; import com.cloudhopper.smpp.pdu.EnquireLink; import com.cloudhopper.smpp.pdu.EnquireLinkResp; import com.cloudhopper.smpp.pdu.SubmitSm; import com.cloudhopper.smpp.pdu.SubmitSmResp; import com.cloudhopper.smpp.pdu.Unbind; import com.cloudhopper.smpp.pdu.UnbindResp; import com.cloudhopper.smpp.util.DeliveryReceipt; import com.cloudhopper.smpp.util.DeliveryReceiptException; import com.cloudhopper.smpp.util.RandomUtil; import com.cloudhopper.smpp.util.SmppSessionUtil; public class SmsReceiver { public static void main(String[] args) { try { String hostname = "短信网关地址"; int port = 2775; String username = "用户名"; String password = "密码"; SmppSession session = SmppSessionUtil.bind(hostname, port, SmppBindType.RECEIVER, username, password); boolean keepRunning = true; while (keepRunning) { EnquireLinkResp enquireLinkResp = session.enquireLink(new EnquireLink(), 5000); if (enquireLinkResp == null) { System.out.println("连接已断开,重新绑定"); session.unbind(5000); session = SmppSessionUtil.bind(hostname, port, SmppBindType.RECEIVER, username, password); } else { Thread.sleep(1000); } } session.unbind(5000); } catch (Exception e) { e.printStackTrace(); } } }
SmppSessionUtil.bind() メソッドを使用して SMS ゲートウェイとの接続を確立し、次に
session.enquireLink() メソッドを周期的に呼び出して、SMS ゲートウェイとのハートビート接続を維持します。 。ハートビート接続が切断された場合は、再バインドしてください。
DeliverSmメッセージの処理を追加する必要があります。 SMS ゲートウェイによっては、メッセージの形式と取得方法が異なる場合があります。
以上がJavaでフォームデータのSMS送受信機能を実装の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。