Reputation: 147
i want to sent SMS from my JAVA APPLICATION in the following format:
NAME: Customer Name
ConfNO: 1234
Date: 2012-05-15
NoOfPax: Seven
Since i am using external sms gateway i need to post it as URL from the application. When i recive the SMS i dont see line breaks instead the text display \n. Please help.My Code is
String senderid = "SMSALERT";
String to = "97112345678";
String text = "Reservation INFO\nName:Customer Name\nConfNO: KN1234\nTime: 12:00PM\n#Pax:5\nThank You for Choosing US";
String type = "text";
String ppgHost = "www.yahoo.com";
String username = "username";
String password = "password";
String datetime = "2012-05-15 12:00:00";
String path = "index.php";
try {
HttpClient httpClient = new DefaultHttpClient();
List<NameValuePair> qparams = new ArrayList<NameValuePair>();
qparams.add(new BasicNameValuePair("username", username));
qparams.add(new BasicNameValuePair("password", password));
qparams.add(new BasicNameValuePair("senderid", senderid));
qparams.add(new BasicNameValuePair("to", to));
qparams.add(new BasicNameValuePair("text", text));
qparams.add(new BasicNameValuePair("type", type));
qparams.add(new BasicNameValuePair("datetime", datetime));
URI uri = URIUtils.createURI("http", ppgHost, -1, path, URLEncodedUtils.format(qparams, "UTF-8"), null);
HttpPost httppost = new HttpPost(uri);
System.out.println(httppost.getURI());
HttpResponse response = httpClient.execute(httppost);
System.out.println(response.getStatusLine());
Upvotes: 14
Views: 60059
Reputation: 18042
If it's a URL you can use the percent-encoded value for a new line, it's %0D%0A
although %0A
(ASCII 10 - line feed) or %0D
(ASCII 13 - carriage return) should work alone.
Upvotes: 35
Reputation: 475
All the parameters needs to be URL encoded. Further, it is a good practice to user system line separator rather than hardcoding "\n"
System.getProperty("line.separator");
Upvotes: 0