2012-05-04 15 views
0

で失敗します.SMSを送信するJavaアプリケーションがあります。 2つの変数が以下のように設定されています。エンコード処理が行われます。問題は今それが正常に動作しますが、&時間後....メッセージは配信されていません?では、他にどのようなエンコーディングメカニズムが必要ですか?Asciiへの変換は&

String smsMessage = "Asset:TEST1\nSerial ID:Test1\nEvent:Arrive\nDate&Time:2012-04-26 21:06:37\nEvent Location:Location1"; 
String fullMessageLink="user=tt1&password=tt11&api_id=2211&to=1234567&text="+smsMessage; 

URI uri = new URI(
     "http", 
     "api.clickatell.com", 
     "/http/sendmsg", 
     fullMessageLink, 
     null); 

String request = uri.toASCIIString(); 

答えて

3

アンパサンド&は、URLパラメータ間のセパレータとして使用されます。 fullMessageLink&'sに注目してください。 &の文字列を渡すには、値URL encodeが必要です。

URLEncoder classを使用してエンコードを実行します。

+0

私はこのsmsMessage = URLEncoder.encode(smsMessage、 "UTF-8")をしました。残念ながら、私がSMSを受け取ったときには、メッセージのすべての%が付きます。だからこれを克服する方法は? – user837306

+0

@ user837306 - 手がかりがなく、FAQでもそれがあなたがすべきことだと言っています:http://support.clickatell.com/faq.php?mode=view_entry&kbid=213&kbcat=28 – shf301

+0

@ sh301ここでは、エンコードされたメッセージ&テキスト=資産です%253ATEST1%250ASerial + ID%253ATest1%250AEvent%253AArrive%250ADate%2526Time%253A2012-04-26 + 21%253A06%253A37%250AEvent + Location%253ALocation1その改行は%0Aですが、\ nを使用すると%250Aを取得しますこれも問題だと思いますか? – user837306

関連する問題