codenameone - Codenameone 执行 Postman REST 调用
问题描述
使用 Postman,我能够成功连接到我的登录服务器并接收访问令牌。
我想在我的 CN1 代码中复制这个调用
这是我的邮递员脚本:
卷曲
curl --location --request POST 'https://myloginserver.com/accounts/login' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data-urlencode 'username=myusername' \
--data-urlencode 'password=mypassword'
爪哇
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://myloginserver/accounts/login")
.header("Content-Type", "application/x-www-form-urlencoded")
.field("username", "myusername")
.field("password", "mypassword")
.asString();
这是我的 CN1 代码
ConnectionRequest getTokenConnReq = null;
try {
getTokenConnReq = new ConnectionRequest("https://myloginserver.com/accounts/login");
getTokenConnReq.setPost(true);
getTokenConnReq.addRequestHeader("Content-Type","application/x-www-form-urlencoded");
getTokenConnReq.setHttpMethod("POST");
getTokenConnReq.setRequestBody("username=myusername&password=mypassword");
getTokenConnReq.setFailSilently(true);
getTokenConnReq.setCookiesEnabled(false);
NetworkManager.getInstance().addToQueueAndWait(getTokenConnReq);
result = new JSONParser().parseJSON(new InputStreamReader(new ByteArrayInputStream(getTokenConnReq.getResponseData()), DocumentInfo.ENCODING_UTF8));
return result;
} catch (Exception err22) {
System.err.println(err22);
return null;
}
不幸的是,我的回答从 300 到 400 不等,具体取决于我如何调整代码。请告知我如何在 CN1 中使用它?
(我认为这可能与 Cookies 有关,因为我确实看到 Postman 在后台向呼叫添加 cookie)
任何帮助将不胜感激。
谢谢
解决方案
我建议使用Rest
更容易用于此类调用的 API:
Rest.post("https://myloginserver.com/accounts/login")
.contentType("application/x-www-form-urlencoded")
.queryParam("username", username)
.queryParam("password", password)
.fetchAsJsonMap(result -> {
Map parsedJson = result.getResponseData();
// key/value pairs from the resulting JSON
});
推荐阅读
- amazon-web-services - AWS API Gateway 在使用查询参数时返回 HTTP 代码 400
- javascript - 在 Javascript 中使用 PHP 变量
- report - 在 qweb 报告中打印静态图像
- iis - config.json 文件的奇怪行为
- youtrack - 你可以在同一个数据库上使用多个 YouTrack 实例吗?
- azure - SQL Azure Serverless 配置问题
- r - 更改 tbl_regression/tbl_uvregression 和 tbl_summary 中的默认变量值显示?#gtsummary
- elasticsearch - 如何在elasticsearch中做两个嵌套对象聚合?
- excel - 模糊字符串匹配 Excel
- scala - 从细化中获取正在细化的类