首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MATLAB未正确发送HTTP POST请求

MATLAB未正确发送HTTP POST请求
EN

Stack Overflow用户
提问于 2021-02-04 11:49:15
回答 1查看 38关注 0票数 0

我目前正在尝试建立一个基于MATLAB的系统,与我的股票经纪人的API接口。然而,我在向服务器发送http post请求时遇到了相当多的问题。

我已经让它在测试邮递员时完美地工作了,但由于某种原因,它一直拒绝我的MATLAB发送请求。我现在通过PIPEDREAM测试实际的请求,它允许我查看http请求。

好的请求和坏的请求的图像:

左边是我的邮递员请求的图像,它完美地将其处理为JSON字符串。但是,我的MATLAB请求没有得到正确处理,而且比实际的字符串值长10个字符。

这里可以看到发送请求的(修剪过的)代码。

代码语言:javascript
运行
复制
% http request classes
import matlab.net.*
import matlab.net.http.*

% prepare payload
username = "usr";
password = "XXXXXXXXXXXXX";
    
login_payload = struct("username", username, "password", password);

request = RequestMessage('POST', [ bunchOfHeaders ],  jsonencode(login_payload));
% Send request to login api
[login_resp, c, h] = request.send("https://trading.somebroker.com/login/secure/login");

有谁知道这里会发生什么吗?如果我将content- length设置为“正确的”长度(与length (Login_payload)相同),它会显示我的长度是错误的,即使我的邮递员请求似乎没有遇到这个问题。

EN

回答 1

Stack Overflow用户

发布于 2021-02-05 02:52:40

找到答案了。Matlabs http的东西简直是胡思乱想。

我仔细研究了截获的原始消息(pipedream只是将您的请求发回给您,您可以使用string(Login_resp)查看它)。

由于某种该死的原因,matlab将json字符串封装为"s“,这使得接收器将整个正文视为字符串。这是由于将" content-type”设置为"application/json“造成的。将content-type更改为"text/plain”并没有将其封装在"s“中,这完全解决了我的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66039108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档