14

次の形式でJAVAアプリケーションからSMSを送信したい:
NAME:Customer Name
ConfNO:1234
Date:2012-05-15
NoOfPax:Seven
外部のSMSゲートウェイを使用しているので、アプリケーションからのURLとして投稿する必要があります。SMSを受信すると、代わりに改行が表示されません\n。助けてください。私のコードは

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());    
4

2 に答える 2

33

これがURLの場合、新しい行にパーセントエンコードされた値を使用できますが、%0D%0A%0AASCII 10-改行)または%0D(ASCII 13-キャリッジリターン)は単独で機能するはずです。

于 2012-05-15T13:27:40.560 に答える
0

すべてのパラメータはURLエンコードする必要があります。さらに、「\ n」をハードコーディングするのではなく、システムの行区切り記号を使用することをお勧めします。

System.getProperty("line.separator");

于 2012-05-15T13:35:34.973 に答える