iteye_2905 2008-09-16 16:59
浏览 269
已采纳

利用httpClient 发起一个post请求,给手机发送短信

现有一个url,只要传一个message和telephone 就行了。

代码如下:

     private static int BASE_BODY_SIZE = 10240;
private static int INC_BODY_SIZE = 51200;

public void sendSMS(String mobilePhone, String message){

    String endPoint = "http://econnect.hotdotchina.com/econnect/pitf/submit.jsp?uid=wuyou&pswd=wy0051&extno=0051";
    String url = endPoint + "&mob=" + mobilePhone + "&msg=" + message;
            this.send(url);

}

public void send(String url){
HttpClient httpClient = new HttpClient();
PostMethod method = new PostMethod(url);
try {
int retcode = httpClient.executeMethod(method);

        if (retcode == HttpStatus.SC_OK) {
            byte[] responseBody = new byte[BASE_BODY_SIZE];
            java.io.InputStream istream = method.getResponseBodyAsStream();
            int npos = 0;
            int nread = 0;
            while ((nread = istream.read(responseBody, npos,
                    responseBody.length - npos)) >= 0) {
                npos += nread;
                if (npos >= responseBody.length) {
                    byte[] tmpBuf = new byte[npos + INC_BODY_SIZE];
                    System.arraycopy(responseBody, 0, tmpBuf, 0, npos);
                    responseBody = tmpBuf;
                }
            }

        }

    } catch (Exception e) {
        log.error("", e, "");
    } 

可这时接受到的短信中文不能显示,有谁知道为什么?

  • 写回答

1条回答 默认 最新

  • xuxiaolei 2008-09-16 17:30
    关注

    中文需要转码的,试试下面的代码
    [code="java"]String url = endPoint + "&mob=" + java.net.URLEncoder.encode(mobilePhone, "GBK") + "&msg=" + java.net.URLEncoder.encode(message, "GBK");
    [/code]

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥35 平滑拟合曲线该如何生成
  • ¥100 c语言,请帮蒟蒻写一个题的范例作参考
  • ¥15 名为“Product”的列已属于此 DataTable
  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 自己瞎改改,结果现在又运行不了了
  • ¥15 链式存储应该如何解决
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站