Today, I have nothing to worry about. on Weibo, I saw a program for sending text messages via Java. I looked at it and did not believe it. I am not sure about it. I will sort it out and may need it later.
There are several methods to send text messages via Java: (1) Use the WebService interface to send text messages, which can be sent using the WebService provided by Sina, but must be registered; (2) you can use the short message Mao method to send short messages. This method should be quite common, provided that you need to purchase hardware devices. (3) use the SMS platform provided by China Internet (apply for account address: http://sms.webchinese.cn/default.shtml)
This program mainly uses the SMS platform provided by China Internet. This SMS platform provides a special interface based on Java ., On the code, there is code with truth, huh, huh
Package COM. text; import Org. apache. commons. httpclient. header; import Org. apache. commons. httpclient. httpclient; import Org. apache. commons. httpclient. namevaluepair; import Org. apache. commons. httpclient. methods. postmethod; public class sendmsg_webchinese {public static void main (string [] ARGs) throws exception {httpclient client = new httpclient (); postmethod post = new postmethod ("http://sms.webchinese.cn /Web_api/"); Post. addrequestheader ("Content-Type", "application/X-WWW-form-urlencoded; charset = GBK "); // set transcoding namevaluepair [] DATA = {New namevaluepair ("uid", "cshxxxxxxxx") in the header file, // The registered username new namevaluepair ("key ", "53295058d1c46710666a"), // The New namevaluepair ("smsmob", "187 xxxxxxx") used by the website after successful registration, // the mobile phone number new namevaluepair ("smstext ", "Be honest with me later .... Obedient... ")}; // Set the text message content
post.setRequestBody(data);client.executeMethod(post);Header[] headers = post.getResponseHeaders();int statusCode = post.getStatusCode();System.out.println("statusCode:" + statusCode);for (Header h : headers) {System.out.println(h.toString());}String result = new String(post.getResponseBodyAsString().getBytes("gbk"));System.out.println(result);post.releaseConnection();}}
To run this program, enter the following three jar packages:
Commons-codec-1.4
Commons-httpclient-3.1
Commons-logging-1.1.1
Please download it by yourself.
GBK-encoded sending interface address:
Http://gbk.sms.webchinese.cn /? Uid = user name on this site & Key = API security password & smsmob = Mobile Phone Number & smstext = SMS content
UTF-8 code send interface address:
Http://utf8.sms.webchinese.cn /? Uid = user name on this site & Key = API security password & smsmob = Mobile Phone Number & smstext = SMS content
API address for getting the number of text messages (utf8 ):
Http://sms.webchinese.cn/web_api/SMS? Action = sms_num & uid = user name on this site & Key = interface Security Password
API address for getting the SMS quantity (GBK ):
Http://sms.webchinese.cn/web_api/SMS/GBK? Action = sms_num & uid = user name on this site & Key = interface Security Password
Returned value after the SMS is sent |
Description |
-1 |
This user account does not exist |
-2 |
Incorrect key (not user password) |
-3 |
Insufficient SMS count |
-11 |
This user is disabled |
-14 |
The text message contains invalid characters. |
-41 |
The mobile phone number is blank. |
-42 |
The text message content is blank. |
Greater than 0 |
Number of messages sent |
Note: The above user name and password were originally applied for and I don't know why they were stopped. Before running this program, please apply for a user name and password on the SMS platform.
Appendix:
1. asp call example <% 'Common Functions 'Enter the URL target webpage address. The returned value gethttppage is the HTML code of the target webpage. Function gethttppage (URL) Dim HTTP Set HTTP = server. Createobject ("msxml2.xmlhttp ") HTTP. Open "get", URL, false HTTP. Send () If HTTP. readystate <> 4 then Exit Function End if Gethttppage = bytestobstr (HTTP. responsebody, "gb2312 ") Set HTTP = nothing If err. Number <> 0 then err. Clear End Function Function bytestobstr (body, cset) Dim objstream Set objstream = server. Createobject ("ADODB. Stream ") Objstream. type = 1 Objstream. mode = 3 Objstream. Open Objstream. Write body Objstream. Position = 0 Objstream. type = 2 Objstream. charset = cset Bytestobstr = objstream. readtext Objstream. Close Set objstream = nothing End Function 'Combine the submitted URL with your account and password. Sms_url = "http://sms.webchinese.cn/web_api? Uid = Account & Key = interface key & smsmob = Mobile Phone Number & smstext = SMS content" Response. Write gethttppage (sms_url) %>
|
2. C # Call // Namespace to be used Using system. net; Using system. IO; Using system. text; // You only need to pass the assembled URL to the function during the call. Determine the return value. Public String gethtmlfromurl (string URL) { String strret = NULL;If (url = NULL | URL. Trim (). tostring () = "") { Return strret; } String TargetUrl = URL. Trim (). tostring (); Try { Httpwebrequest hR = (httpwebrequest) webrequest. Create (TargetUrl ); HR. useragent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1 )"; HR. method = "get "; HR. Timeout = 30*60*1000; Webresponse HS = HR. getresponse (); Stream sr = HS. getresponsestream (); Streamreader SER = new streamreader (Sr, encoding. Default ); Strret = Ser. readtoend (); } Catch (exception ex) { Strret = NULL; } Return strret; } |
3. Java call Import java. Io. unsupportedencodingexception; Import org. Apache. commons. httpclient. header; Import org. Apache. commons. httpclient. httpclient; Import org. Apache. commons. httpclient. namevaluepair; Import org. Apache. commons. httpclient. Methods. postmethod; Public class sendmsg_webchinese { Public static void main (string [] ARGs) throws exception { Httpclient client = new httpclient (); Postmethod post = new postmethod ("http://gbk.sms.webchinese.cn "); Post. addrequestheader ("Content-Type", "application/X-WWW-form-urlencoded; charset = GBK"); // set transcoding in the header file Namevaluepair [] DATA = {New namevaluepair ("uid", "user name on this site"), new namevaluepair ("key", "interface security password"), new namevaluepair ("smsmob ", "Mobile Phone Number"), new namevaluepair ("smstext", "SMS content ")}; Post. setrequestbody (data ); Client.exe cutemethod (post ); Header [] headers = post. getresponseheaders (); Int statuscode = post. getstatuscode (); System. Out. println ("statuscode:" + statuscode ); For (header H: headers) { System. Out. println (H. tostring ()); } String result = new string (post. getresponsebodyasstring (). getbytes ("GBK ")); System. Out. println (result ); Post. releaseconnection (); } } Download jar package Commons-logging-1.1.1.jar Commons-httpclient-3.1.jar Commons-codec-1.4.jar |
4. php $ Url = 'HTTP: // sms.webchinese.cn/web_api /? Uid = Account & Key = interface key & smsmob = Mobile Phone Number & smstext = SMS content ';Echo get ($ URL ); Function get ($ URL) { If (function_exists ('file _ get_contents ')) { $ File_contents = file_get_contents ($ URL ); } Else { $ CH = curl_init (); $ Timeout = 5; Curl_setopt ($ ch, curlopt_url, $ URL ); Curl_setopt ($ ch, curlopt_returntransfer, 1 ); Curl_setopt ($ ch, curlopt_connecttimeout, $ timeout ); $ File_contents = curl_exec ($ ch ); Curl_close ($ ch ); } Return $ file_contents; } |
5. VB. NET 'Send SMS by calling, nolist receiving number. Separate multiple numbers with 70 words for memo content Public Function sendsms (byval nolist as string, byval memo as string) as string Dim URL as string = "http://sms.webchinese.cn/web_api? Uid = Account & Key = interface key & smsmob = Mobile Phone Number & smstext = SMS content" Dim WebClient as new net. WebClient () Try 'Dim responsedata as byte () = Dim srcstring as string = WebClient. downloadstring (URL) Return srcstring Catch Return "-444" End try End Function |