Difference between revisions of "Java Sending SMS via SOAP"
From SMS Wiki
(One intermediate revision by one user not shown) | |||
Line 1: | Line 1: | ||
− | |||
The process of sending an SMS using Java is shown using Eclipse with the XFire plugin. XFire is an opensource Java SOAP interface [http://xfire.codehaus.org/ (download XFire)] | The process of sending an SMS using Java is shown using Eclipse with the XFire plugin. XFire is an opensource Java SOAP interface [http://xfire.codehaus.org/ (download XFire)] | ||
Line 7: | Line 6: | ||
WSDL: http://api.upsidewireless.com/soap/Authentication.asmx?WSDL | WSDL: http://api.upsidewireless.com/soap/Authentication.asmx?WSDL | ||
− | Output Directory: <Your source directory> | + | |
+ | Output Directory: <Your source directory> | ||
+ | |||
Package: <Leave Blank> (By leaving this field blank, the default package of the service will be used) | Package: <Leave Blank> (By leaving this field blank, the default package of the service will be used) | ||
+ | |||
Click Finish and it will build the necessary source files. Repeat the process for: http://api.upsidewireless.com/soap/SMS.asmx?WSDL | Click Finish and it will build the necessary source files. Repeat the process for: http://api.upsidewireless.com/soap/SMS.asmx?WSDL | ||
Line 14: | Line 16: | ||
<source lang="java"> | <source lang="java"> | ||
+ | |||
SMSClient client = new SMSClient(); | SMSClient client = new SMSClient(); | ||
+ | |||
SMSSoap soap = client.getSMSSoap(); | SMSSoap soap = client.getSMSSoap(); | ||
+ | |||
soap.send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN); | soap.send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN); | ||
+ | |||
</source> | </source> | ||
Line 33: | Line 39: | ||
import com.upsidewireless.webservice.authentication.AuthenticationClient; | import com.upsidewireless.webservice.authentication.AuthenticationClient; | ||
+ | |||
import com.upsidewireless.webservice.authentication.AuthenticationParameters; | import com.upsidewireless.webservice.authentication.AuthenticationParameters; | ||
+ | |||
import com.upsidewireless.webservice.authentication.AuthenticationSoap; | import com.upsidewireless.webservice.authentication.AuthenticationSoap; | ||
+ | |||
import com.upsidewireless.webservice.sms.SMSClient; | import com.upsidewireless.webservice.sms.SMSClient; | ||
+ | |||
import com.upsidewireless.webservice.sms.SMSSoap; | import com.upsidewireless.webservice.sms.SMSSoap; | ||
+ | |||
import com.upsidewireless.webservice.sms.SmsEncoding; | import com.upsidewireless.webservice.sms.SmsEncoding; | ||
+ | |||
/** | /** | ||
− | * | + | * Start of your code |
* | * | ||
*/ | */ | ||
Line 48: | Line 60: | ||
* @param args | * @param args | ||
*/ | */ | ||
+ | |||
public static void main(String[] args) { | public static void main(String[] args) { | ||
− | + | /*********************************************************************** | |
+ | |||
* Execute the retrieval of the token and signature only once. | * Execute the retrieval of the token and signature only once. | ||
+ | |||
* Preferably from the web interface and store them as Constants | * Preferably from the web interface and store them as Constants | ||
**********************************************************************/ | **********************************************************************/ | ||
AuthenticationClient authclient = new AuthenticationClient(); | AuthenticationClient authclient = new AuthenticationClient(); | ||
+ | |||
AuthenticationSoap authsoap = authclient.getAuthenticationSoap(); | AuthenticationSoap authsoap = authclient.getAuthenticationSoap(); | ||
AuthenticationParameters authparams = authsoap.getParameters("YourUserName", "YourPassword"); | AuthenticationParameters authparams = authsoap.getParameters("YourUserName", "YourPassword"); | ||
+ | |||
String token = authparams.getToken(); | String token = authparams.getToken(); | ||
+ | |||
String signature = authparams.getSignature(); | String signature = authparams.getSignature(); | ||
/*********************************************************************** | /*********************************************************************** | ||
− | * We now have the credentials, now build a SOAP client and make the | + | |
− | + | * We now have the credentials, now build a SOAP client and make the call. | |
**********************************************************************/ | **********************************************************************/ | ||
SMSClient client = new SMSClient(); | SMSClient client = new SMSClient(); | ||
+ | |||
SMSSoap soap = client.getSMSSoap(); | SMSSoap soap = client.getSMSSoap(); | ||
+ | |||
soap.send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN); | soap.send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN); | ||
Line 74: | Line 94: | ||
} | } | ||
+ | |||
</source> | </source> | ||
---- | ---- | ||
[[APIs | back]] | [[APIs | back]] |
Latest revision as of 11:05, 6 December 2011
The process of sending an SMS using Java is shown using Eclipse with the XFire plugin. XFire is an opensource Java SOAP interface (download XFire)
- Once you have the plugin installed, add the XFire nature to your project by right clicking on the project and selecting "Add XFire Nature"
- Then, right click on the project and specify "New > Other...". At the bottom of the list should be an option labeled "Code generation from WSDL Document". Select this option and enter the following into the dialog presented:
WSDL: http://api.upsidewireless.com/soap/Authentication.asmx?WSDL
Output Directory: <Your source directory>
Package: <Leave Blank> (By leaving this field blank, the default package of the service will be used)
Click Finish and it will build the necessary source files. Repeat the process for: http://api.upsidewireless.com/soap/SMS.asmx?WSDL
- Now that you have both sets of XFire client code generated (one for authentication and the other for sending SMS), now it is time to make a call. The essence of making the call is the following 3 lines of code (it can be reduce down to a single line of code, but that would make debugging difficult):
SMSClient client = new SMSClient(); SMSSoap soap = client.getSMSSoap(); soap.send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN);
Here is the one liner:
new SMSClient().getSMSSoap().send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN);
If you are sending URL in the text of your message please note that special characters like "-", "+", "/" and others MUST be replaced with their safe equivalents (for example %2f).
A complete "Main" style application would look like:
import org.codehaus.xfire.XFireRuntimeException; import com.upsidewireless.webservice.authentication.AuthenticationClient; import com.upsidewireless.webservice.authentication.AuthenticationParameters; import com.upsidewireless.webservice.authentication.AuthenticationSoap; import com.upsidewireless.webservice.sms.SMSClient; import com.upsidewireless.webservice.sms.SMSSoap; import com.upsidewireless.webservice.sms.SmsEncoding; /** * Start of your code * */ public class SendSms { /** * @param args */ public static void main(String[] args) { /*********************************************************************** * Execute the retrieval of the token and signature only once. * Preferably from the web interface and store them as Constants **********************************************************************/ AuthenticationClient authclient = new AuthenticationClient(); AuthenticationSoap authsoap = authclient.getAuthenticationSoap(); AuthenticationParameters authparams = authsoap.getParameters("YourUserName", "YourPassword"); String token = authparams.getToken(); String signature = authparams.getSignature(); /*********************************************************************** * We now have the credentials, now build a SOAP client and make the call. **********************************************************************/ SMSClient client = new SMSClient(); SMSSoap soap = client.getSMSSoap(); soap.send_Plain(token, signature, "+15557779999", "Hello", SmsEncoding.SEVEN); } }