Как отправить символ @ в Kannel с помощью HTTP-клиента? - PullRequest
0 голосов
/ 02 апреля 2012

Я пытаюсь отправить 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);

Итак, как лучше всего отправить смс в канал?

Спасибо.

1 Ответ

0 голосов
/ 06 апреля 2012

Необходимо настроить kannel для работы с post

Группа пользователей

 group = sms-service

Заменить get-url на post-url

Вам также необходимо следующеепараметры, которые работают ТОЛЬКО для Post

send-sender
strip-keyword   

В вашем приложении вам также необходимо иметь несколько пользовательских заголовков для использования Kannel POST

Эти заголовки могут включать

X-Kannel-From   Only sent if send-sender is true
X-Kannel-To  
X-Kannel-Time    
X-Kannel-UDH    in hex format: 06050415820000
X-Kannel-SMSC    
X-Kannel-MClass  
X-Kannel-PID     
X-Kannel-Alt-DCS     
X-Kannel-MWI     
X-Kannel-Coding 0=7 Bits, 1=8 Bits, 2=UCS-2
X-Kannel-Compress    
X-Kannel-Validity    
X-Kannel-Deferred    
X-Kannel-Service

Пожалуйста, смотрите документацию http://www.kannel.org/download/1.4.3/userguide-1.4.3/userguide.html на Kannel Post, чтобы понять, как это работает

...