Я пытаюсь отправить SMS в Kannel, используя HTTP Client через метод Get: - Я не хочу его кодировать;так как символ @ отправляется неправильно.
Если я отправил без кодировки, я получаю ошибку для пробела.Код выглядит следующим образом:
StringBuffer directives=new StringBuffer();
HttpClient client = new DefaultHttpClient();
directives.append("username=" + username);
directives.append("&password=" + password);
directives.append("&from=" + from);
directives.append("&to=" + to);
directives.append("&coding=0");
// Without Encoding
directives.append("&text=" + text);
directives.append("&smsc=" + smsc);
directives.append("&dlr-mask=" + dlrmask);
directives.append("&dlr-url=" + dlrurl);
URI uri = URIUtils.createURI("http", host, Integer.parseInt(port), "/cgi-bin/sendsms", directives.toString(), null);
HttpGet httpget = new HttpGet(uri);
HttpResponse httpResponse = client.execute(httpget);
Я попытался отправить его с помощью метода POST, где я установил тип содержимого = text / plain: - Канал не принимал параметры
Послеэто код:
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost("http://" + host + ":" + port + "/cgi-bin/sendsms");
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("username", username));
nameValuePairs.add(new BasicNameValuePair("password", password));
nameValuePairs.add(new BasicNameValuePair("from", from));
nameValuePairs.add(new BasicNameValuePair("to",to));
nameValuePairs.add(new BasicNameValuePair("text",text));
nameValuePairs.add(new BasicNameValuePair("smsc", smsc));
nameValuePairs.add(new BasicNameValuePair("dlr-mask",dlrmask));
nameValuePairs.add(new BasicNameValuePair("dlr-url",dlrurl));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));
HttpResponse httpResponse = client.execute(post);
Итак, как лучше всего отправить смс в канал?
Спасибо.