对接短信遇到的编码问题

由于客户需要,app添加短信功能,这里用到了第三方对接接口功能:

遇到一个问题,同一个方法本地测试 main方法可以执行

结果成功<?xml version="1.0" encoding="utf-8" ?><returnsms>
 <returnstatus>Success/returnstatus>
手机可以收到短信!

,但是在serviceImpl具体方法中调用就总是失败的报文

<?xml version="1.0" encoding="utf-8" ?><returnsms>
 <returnstatus>Faild</returnstatus>
 <message>短信必须带【】格式签名</message>
 <remainpoint>0</remainpoint>
 <taskID>0</taskID>
 <successCounts>0</successCounts></returnsms>

而且咨询短信平台客服,事实证明我们所测试短信都应该是已经发送成功了!

后台找同事帮忙看 发现是编码的问题:

main---方法 走的是eclipse 我当然设置的是UTF-8的编码,符合平台需求!!

serviceImpl需要tomcat协助,而tomcat默认的编码是:ISO-8859-1


 public static String sendMsgNew(String vCode, String phone) {
        OutputStream out = null;
        BufferedReader rd = null;
        String responseContent = "";
        HttpURLConnection urlConn = null;
        // 短信接口用户名和密码
        String userid = "40";
        String userName = "ayrjqr";
        String password = "123456";
        String extno = "060099";

        try {
            String _url = "http://120.76.25.160:7788/sms.aspx";
            String params = "action=send&userid=" + userid + "&account=" + userName + "&password=" + password
                    + "&mobile=" + phone + "&content="
                    + URLEncoder.encode("【爱睿机器人】您的验证码为:" + vCode + ",1分钟之内有效,请尽快验证!", "UTF-8") + "&sendTime=&extno="
                    + extno;

            responseContent = SmsUtil.getResponse(_url, params);

        } catch (Exception ex) {
            ex.printStackTrace();
        } finally {
            try {
                if (urlConn != null) {
                    urlConn.disconnect();
                }
                if (rd != null) {
                    rd.close();
                }

                if (out != null) {
                    out.close();
                }
            } catch (Exception ex) {
                ex.printStackTrace();
            }
        }
        return responseContent;
    }


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值