تستخدم وظيفة إرسال رموز التحقق من الرسائل القصيرة واجهة منصة SMS الخاصة بـ Xinyitong ، ثم تستخدم HTTPClient لمحاكاة الطلبات النشرات أو الحصول على طلبات في Java (انظر متطلبات منصة SMS ، والتي هي عادة طلبات نشر) ، وتدعو الواجهة التي توفرها نظام SMS (فقط اتبع مواصفات الواجهة لمنصة SMS). تعتمد على الرمز:
عند استخدام httpclient ، تحتاج إلى تقديمه في المشروع:
العموم HTTPCLIENT-3.1.JAR
حزمة الجرة هذه ،
هيكل المشروع:
1. قم بإنشاء فئة أداة طلب محاكاة HTTP ، ثم اكتب طريقة نشر أو احصل على طريقة
/*** وصف الملف* description: الوصف الموسع* copyright: 2015 DreamTech.com.cn Inc. All Righted* @Version: org.apache.commons.httpclient.httpclient ؛ import org.apache.commons.httpclient.httpexception ؛ import org.apache.commons.httpclient.simplehttpconnectionManiceManager ؛ isord org.apache.commons.httpclient.methodshodshodshodshodshodshodshodshodshodshodshodshodshodshods. org.apache.commons.httpclient.methods.postmethod ؛/** * author: feizi * date: 17 أبريل 2015 في 9:26:34 am * @modifyser: feizi * modifydate: 17 أبريل ، 2015 ، الساعة 9:26:34 صباحًا * v6.0 httpclient محاكاة طلب النشر * الطريقة الوصف * discription: موسع الوصف * param url * param params * string * return * author: feizi * @ @date: 17 أبريل 2015 في 7:15:59 pm خريطة <string ، string> params) {// إنشاء مثيل من httpclient httpclient httpclient httpclient = new httpclient () ؛ // إنشاء مثيل لطريقة ما بعد postmethod postmethod = postmethod جديد (url) ؛ // SET request request header معلومات postmethod.setRequestHeader ("connection" ، "Close") ؛ // إضافة معلمات لـ (map.entry <string ، string> intern: params.entryset ()) {postmethod.addparameter (intrad.getKey () ، intradValue ()) ؛ } // استخدم إستراتيجية الاسترداد الافتراضية التي يوفرها النظام لتعيين معالجة إعادة محاولة الطلب ، باستخدام معالجة إعادة المحاولة الافتراضية: طلب ثلاث مرات httpclient.getParams (). // استلام نتائج نتائج المعالجة = NULL ؛ حاول {// تنفيذ طلب HTTP POST HTTPCLIENT.EXECUTEMETHOD (postmethod) ؛ // نتيجة معالجة الإرجاع نتيجة = postmethod.getResponseBodyassTring () ؛ } catch (httpexception e) {// حدث استثناء فادح ، والذي قد يكون بسبب بروتوكول غير متطابق أو مشكلة في نظام المحتوى الذي تم إرجاعه. E.PrintStackTrace () ؛ } catch (ioException e) {// حدث استثناء على الشبكة system.out.println ("حدث استثناء الشبكة!") ؛ E.PrintStackTrace () ؛ } أخيرًا {// قم بإطلاق الرابط postmethod.releaseconnection () ؛ // أغلق مثيل httpclient if (httpclient! = null) {((simplehttpconnectionManager) httpclient.gethttpconnectionManager ()). stheDdown () ؛ httpclient = null ؛ }} نتيجة الإرجاع ؛ } / ** * httpclient محاكاة الحصول على طلب * الطريقة الوصف * discription: تمديد الوصف * param url * param params * sturn string * @author: feizi * @date: 17 أبريل ، 2015 في 7:15:28 pm url ، map <string ، string> params) {// construct httpclient مثيل httpclient client = new httpclient () ؛ // تقسيم المعلمات string paramstr = "" ؛ لـ (مفتاح السلسلة: params.keyset ()) {paramstr = paramstr + "&" + key + "=" + params.get (key) ؛ } paramstr = paramstr.substring (1) ؛ // قم بإنشاء مثيل لطريقة GET getMethod = getMethod جديد (url + "؟" + paramstr) ؛ // استلام نتيجة سلسلة نتائج الإرجاع = NULL ؛ حاول {// تنفيذ http get request request client.executemethod (method) ؛ // إرجاع نتيجة نتيجة المعالجة = method.getResponseBodyassTring () ؛ } catch (httpexception e) {// حدث استثناء فادح ، والذي قد يكون أن البروتوكول غير صحيح أو أن هناك خطأ ما في نظام المحتوى الذي تم إرجاعه. E.PrintStackTrace () ؛ } catch (ioException e) {// network issection حدث System.out.println ("حدث استثناء الشبكة!") ؛ E.PrintStackTrace () ؛ } أخيرًا {// relection link method.releaseconnection () ؛ // أغلق مثيل httpclient if (client! = null) {((simplehttpConnectionManager) client.gethttpconnectionManager ()). staken () ؛ العميل = فارغ ؛ }} نتيجة الإرجاع ؛ }}2. قم بإنشاء فئة ، وإنشاء رمز التحقق ، ثم تمرير المعلمات المقابلة (سيكون لدى واجهات منصة SMS المختلفة متطلبات معلمة مختلفة. يوفر نظام SMS العام مستندات واجهة. انظر فقط إلى المستند ثم اتبع المتطلبات)
/*** وصف الملف* description: الوصف الموسع* @copyright: 2015 DreamTech.com.cn Inc. All Righted* @Version: 9:24:48 AM * modifyuser: feizi * modifyDate: 17 أبريل ، 2015 في 9:24:48 AM * version: v6.0 * /public class sendmsgutil { /** 2015 في 7:18:08 PM * modifyuser: feizi * modifyDate: 17 أبريل 2015 ، الساعة 7:18:08 PM */suppressWarnings ("deprecation) السلسلة العامة static string sendmsg (خطوة السلسلة) خريطة <string ، string> params = new hashmap <string ، string> () ؛ params.put ("ZH" ، "حساب المستخدم") ؛ params.put ("mm" ، "كلمة مرور المستخدم") ؛ params.put ("dxlbid" ، "رقم فئة الرسائل القصيرة") ؛ params.put ("extno" ، "extno") ؛ // رقم الهاتف المحمول ، يتم تقسيم أرقام متعددة باستخدام plass.pams.put باللغة الإنجليزية ("HM" ، الهواتف) ؛ // المستخدم يشفر محتوى الرسائل القصيرة بواسطة url params.put ("nr" ، urlencoder.encode (content)) ؛ إرجاع httprequestutil.getRequest (url ، params) ؛ } / ** * قم بإنشاء رمز التحقق العشوائي 6 بت * الوصف * discription: الوصف الموسع * REGRURN * @REGRENT * Author: feizi * date: 17 أبريل 2015 في 7:19:02 PM * modifyser: feizi * modifyDate: 17 أبريل ، 2015 في 7:19:02 // vertification code string vcode = "" ؛ لـ (int i = 0 ؛ i <6 ؛ i ++) {vCode = vCode+(int) (Math.Random () * 9) ؛ } إرجاع vCode ؛ }/** * اختبار * الطريقة الوصف * discription: الوصف الموسع * param args * return void * author: feizi * date: 17 أبريل 2015 في 7:26:36 pm * modeSer: Feizi * modifyDate: 17 أبريل 2015 ، الساعة 7:26:36 مساءً System.out.println (sendmsgutil.createrandomvcode ()) ؛ // system.out.println ("& ecb = 12" .SubString (1)) ؛ System.out.println (sendmsg ("18123456789،15123456789" ، "عزيزي المستخدم ، رمز التحقق الخاص بك هو" + sendmsgutil.createrandomvcode () + "، ساري المدى لمدة 60 ثانية. }}ثم تنفذها. بشكل عام ، إذا تم تمرير المعلمات بشكل صحيح ، وإذا تم تشغيل مستند الواجهة وفقًا للمواصفات ، فسيكون الإرسال ناجحًا ، وسيتلقى الهاتف المحمول رمز التحقق. المشكلة التي قد تنشأ هي: قد يكون لمحتوى الرسالة النصية المرسلة رمزًا مشوهًا صينيًا ، وسيكون الإرسال غير ناجح. سيتم تنفيذ الترميز المقابل وفقًا لمتطلبات منصة الرسائل النصية. وعادة ما يكون UTF-8 ترميز.
رمز كامل: SendMassage
ما سبق هو كل محتوى هذه المقالة. آمل أن يكون ذلك مفيدًا لتعلم الجميع وآمل أن يدعم الجميع wulin.com أكثر.