【问题标题】:codenameone post request dont send argument代号一个帖子请求不发送参数
【发布时间】:2016-09-11 12:14:06
【问题描述】:

我尝试制作一个代号为 1 的 post rquest 表单:

ConnectionRequest r = new ConnectionRequest();
        r.setPost(true);
        r.setHttpMethod("POST");
        r.setUrl(GlobalVariable.REST_HOSTNAME + "/api/newsfeed");
        r.addArgument("content", message);
        r.addArgument("title", "Update");
        r.addArgument("uid", "admin");
        r.addArgument("token", Preferences.get("token", null));
        r.addArgument("eid", Preferences.get("eventId", ""));
        NetworkManager.getInstance().addToQueueAndWait(r);

当我从 php 日志中检查时,没有提交参数:

127.0.0.1 - - [11/Sep/2016:01:01:08 +0700] "POST /api/newsfeed HTTP/1.1" 401 7581

但是,如果我使用邮递员,它会成功。如何使或强制传递参数?

【问题讨论】:

  • 从模拟器中检查网络监视器
  • 发布你在邮递员中使用的命令。我猜网络服务需要 JSON
  • 这里是我通过邮递员发布的网址:danone.local/api/…
  • 我用网络监视器检查并将帖子正文复制到邮递员中,结果是正确的。显示 200 响应代码。但是当我使用代号一发布时,响应代码是 401。
  • 你的php访问日志不会显示post参数。将日志记录添加到您的错误日志中,然后查看您的脚本接收到的内容。

标签: php codenameone


【解决方案1】:

我猜上面的 web 服务需要一个 JSON 参数,而 Codename One 默认使用标准的 post 参数(如 HTML 表单)。您可以使用如下代码提交 JSON:How to post JSON to a REST webservice in codenameone

【讨论】:

  • 我还没有转换成json,我用网络监视器检查并将帖子正文复制到邮递员,结果是正确的。显示 200 响应代码。但是当我使用代号一发布时,响应代码是 401。
  • 终于找到了根本原因,这是因为如果请求没有正确的base64 url​​编码,apache会丢弃授权头连接。来源:github.com/tymondesigns/jwt-auth/wiki/Authentication。有没有办法将 ConnectionRequest 设置为正确的 base64 编码?
  • 我们有一个 base 64 类,但我们不发送授权标头
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-18
  • 2017-06-19
相关资源
最近更新 更多