代码名称一个错误:需要411个长度

时间:2017-12-14 19:24:06

标签: java codenameone

大家好我在codename一个api短信中遇到问题 当我按下按钮时,他告诉我这个错误(错误:需要411个长度)

btsms.addActionListener(new ActionListener() {
    @Override
    public void actionPerformed(ActionEvent evt) {
        // String myURL = "https://rest.nexmo.com/sms/json?api_key=*****&api_secret=*****&to=*****" + "&from=*****&text=*****";
        String myURL = "https://rest.nexmo.com/sms/json?api_key=d5b95eee&api_secret=93a8c398b48c63bf&to=21625308299&from=NEXMO&text=reservation_annulée";

        ConnectionRequest cntRqst = new ConnectionRequest() {
            @Override
            protected void readResponse(InputStream in) throws IOException {

            }

            @Override
            protected void postResponse() {
                Dialog.show("SMS", "sms successfully sent", "OK", null);
            }
        };
        cntRqst.setUrl(myURL);
        NetworkManager.getInstance().addToQueue(cntRqst);
    }
});

你能帮我吗谢谢:)

1 个答案:

答案 0 :(得分:0)

在开始之前,你知道Codename One中有一个Twilio SMS callback library吗?

您正在发送一个包含为GET构建的网址的帖子。最小的修复是:

cntRqst.setPost(false);

但是,我个人会把它写成:

ConnectionRequest cntRqst = new ConnectionRequest("https://rest.nexmo.com/sms/json", false) {
    // ...
};


cntRqst.addArgument("api_key", API_KEY);
cntRqst.addArgument("api_secret", API_SECRET);
cntRqst.addArgument("to", "21625308299");
cntRqst.addArgument("from", "NEXMO");
cntRqst.addArgument("text", "reservation_annulée");

这样做的好处是文本是隐式编码的,您可以轻松地在GET / POST之间动态切换。

还有更新的REST API(假设结果是JSON):

Response<Map> response = Rest.get("https://rest.nexmo.com/sms/json").
   queryParam("api_key", API_KEY).
   queryParam("api_secret", API_SECRET).
   queryParam("to", "21625308299").
   queryParam("from", "NEXMO").
   queryParam("text", "reservation_annulée").
   getAsJsonMap();