ฟังก์ชั่นของการส่งรหัสการตรวจสอบ SMS ใช้อินเทอร์เฟซแพลตฟอร์ม SMS ของ Xinyitong จากนั้นใช้ HTTPClient เพื่อจำลองคำขอโพสต์หรือรับคำขอใน Java (ดูข้อกำหนดของแพลตฟอร์ม SMS ซึ่งโดยทั่วไปจะโพสต์คำขอ) และเรียกอินเทอร์เฟซที่จัดทำโดยแพลตฟอร์ม SMS ขึ้นอยู่กับรหัส:
เมื่อใช้ httpClient คุณต้องแนะนำในโครงการ:
Commons-httpclient-3.1.jar
แพ็คเกจขวดนี้
โครงสร้างโครงการ:
1. สร้างคลาสเครื่องมือการร้องขอการจำลอง HTTP จากนั้นเขียนวิธีการโพสต์หรือรับเมธอด
/*** คำอธิบายไฟล์* @description: คำอธิบายเพิ่มเติม* @copyright: 2015 Dreamtech.com.cn Inc. สงวนไว้ทั้งหมด* @version: v6.0*/แพ็คเกจ com.demo.util; นำเข้า java.io.ioexception; นำเข้า java.util.map; org.apache.commons.httpclient.httpclient; นำเข้า org.apache.commons.httpClient.httpexception; นำเข้า org.apache.Commons.httpClient.SimplehtpConnectionManager; org.apache.commons.httpclient.methods.postmethod;/** * @author: feizi * @date: 17 เมษายน 2015 เวลา 9:26:34 น httpClient การร้องขอโพสต์จำลอง * วิธีการคำอธิบาย * @discription: คำอธิบายเพิ่มเติม * @param url * @param params * @@Return String * @author: feizi * @date: 17 เมษายน 2015 เวลา 7:15:59 น. * @modifyuser: feizi * @modifydate แผนที่ <string, string> params) {// สร้างอินสแตนซ์ของ httpClient httpClient httpClient httpClient = httpClient ใหม่ (); // สร้างอินสแตนซ์ของวิธีการโพสต์ postmethod postmethod = postmethod ใหม่ (URL); // ตั้งค่าข้อมูลส่วนหัวคำขอ postmethod.setRequestheader ("การเชื่อมต่อ", "ปิด"); // เพิ่มพารามิเตอร์สำหรับ (map.entry <string, string> รายการ: params.entryset ()) {postmethod.addparameter (entry.getKey (), entry.getValue ()); } // ใช้กลยุทธ์การกู้คืนเริ่มต้นที่จัดทำโดยระบบเพื่อตั้งค่าการประมวลผลการร้องขอซ้ำโดยใช้การประมวลผลการลองใหม่เริ่มต้น: ขอสามครั้ง httpClient.getParams (). setBooleanParameter ("http.protocol.expect-continue", false); // รับผลการประมวลผลสตริงผลลัพธ์ = null; ลอง {// ดำเนินการตามคำขอโพสต์ http httpclient.executemethod (postmethod); // ผลการประมวลผลผลตอบแทนผลลัพธ์ = postmethod.getResponseBodyString (); } catch (httpexception e) {// มีข้อยกเว้นที่ร้ายแรงเกิดขึ้นซึ่งอาจเกิดจากโปรโตคอลที่ไม่ตรงกันหรือปัญหากับระบบเนื้อหาที่ส่งคืนออกไป ("โปรดตรวจสอบ URL ที่ป้อน!"); E.PrintStackTrace (); } catch (ioexception e) {// ข้อยกเว้นเครือข่ายเกิดขึ้น system.out.println ("ข้อยกเว้นเครือข่ายเกิดขึ้น!"); E.PrintStackTrace (); } ในที่สุด {// ปล่อยลิงก์ postmethod.releaseconnection (); // ปิดอินสแตนซ์ httpClient ถ้า (httpClient! = null) {((SimplehttpConnectionManager) httpClient.getHttpConnectionManager ()). shutdown (); httpClient = null; }} ผลการส่งคืน; } / ** * httpClient จำลองรับคำขอ * วิธีการคำอธิบาย * @discription: ส่วนขยายคำอธิบาย * @param url * @param params * @return String * @author: feizi * @date: 17 เมษายน 2015 ที่ 7:15:28 PM * @modifyuser: feizi * @modifydate getRequest (string url, map <string, string> params) {// สร้างอินสแตนซ์ httpClient httpClient client = new httpClient (); // แยกพารามิเตอร์สตริง paramstr = ""; สำหรับ (คีย์สตริง: params.keyset ()) {paramstr = paramstr + "&" + คีย์ + "=" + params.get (คีย์); } paramstr = paramstr.substring (1); // สร้างอินสแตนซ์ของวิธีการ get method method = new getMethod (url + "?" + paramstr); // รับสตริงผลลัพธ์ Return ผลลัพธ์ = null; ลอง {// ดำเนินการ http get method request client.executemethod (เมธอด); // ส่งคืนผลลัพธ์ผลลัพธ์การประมวลผล = method.getResponseBodyString (); } catch (httpexception e) {// มีข้อยกเว้นที่ร้ายแรงเกิดขึ้นซึ่งอาจเป็นไปได้ว่าโปรโตคอลไม่ถูกต้องหรือมีบางอย่างผิดปกติกับระบบเนื้อหาที่ส่งคืนออกไป ("โปรดตรวจสอบ URL ที่ป้อน!"); E.PrintStackTrace (); } catch (ioexception e) {// ข้อยกเว้นเครือข่ายเกิดขึ้น system.out.println ("ข้อยกเว้นเครือข่ายเกิดขึ้น!"); E.PrintStackTrace (); } ในที่สุด {// release link method.releaseconnection (); // ปิดอินสแตนซ์ httpClient ถ้า (ไคลเอนต์! = null) {((SimplehttpConnectionManager) client.getHttpConnectionManager ()). shutdown (); ไคลเอนต์ = null; }} ผลการส่งคืน; -2. สร้างคลาสสร้างรหัสการตรวจสอบแล้วส่งผ่านพารามิเตอร์ที่เกี่ยวข้อง (อินเทอร์เฟซแพลตฟอร์ม SMS ที่แตกต่างกันจะมีข้อกำหนดพารามิเตอร์ที่แตกต่างกันแพลตฟอร์ม SMS ทั่วไปนี้ให้เอกสารอินเทอร์เฟซเพียงดูเอกสารแล้วทำตามข้อกำหนด)
/*** คำอธิบายไฟล์* @description: คำอธิบายเพิ่มเติม* @copyright: 2015 dreamtech.com.cn Inc. สงวนไว้ทั้งหมด* @version: v6.0*/แพ็คเกจ com.demo.util; นำเข้า java.net.urlencoder; นำเข้า Java.Util.hashmap; เวลา 9:24:48 น. * @modifyuser: feizi * @modifydate: 17 เมษายน 2015 เวลา 9:24:48 น 17 เมษายน 2558 เวลา 7:18:08 น. * @modifyuser: feizi * @modifydate: 17 เมษายน 2558 เวลา 7:18:08 น. */@suppresswarnings ( แผนที่ <string, string> params = new hashmap <string, string> (); params.put ("zh", "บัญชีผู้ใช้"); params.put ("mm", "รหัสผ่านผู้ใช้"); params.put ("dxlbid", "หมายเลขหมวดหมู่ SMS"); params.put ("extno", "extno"); // หมายเลขโทรศัพท์มือถือหมายเลขหลายตัวจะถูกแบ่งโดยใช้ params.put ภาษาอังกฤษ ("HM", โทรศัพท์); // ผู้ใช้เข้ารหัสเนื้อหาของ SMS โดย url params.put ("NR", urlencoder.encode (เนื้อหา)); ส่งคืน httprequestutil.getRequest (url, params); } / ** * สุ่มสร้างรหัสการตรวจสอบแบบสุ่ม 6 บิต * เมธอดคำอธิบาย * @discription: คำอธิบายเพิ่มเติม * @return * @@Return String * @author: feizi * @date: 17 เมษายน 2015 เวลา 7:19:02 PM * @modifyuser: feizi * @modifydate // การตรวจสอบรหัสสตริง vcode = ""; สำหรับ (int i = 0; i <6; i ++) {vCode = vCode+(int) (math.random () * 9); } return vcode; }/** * ทดสอบ * คำอธิบายเมธอด * @discription: คำอธิบายเพิ่มเติม * @param args * @return เป็นโมฆะ * @author: feizi * @date: 17 เมษายน 2015 เวลา 7:26:36 PM * @modifyuser: 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 มากขึ้น