首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将HTTP "_method“头传递给matlab中的urlread2函数

将HTTP "_method“头传递给matlab中的urlread2函数
EN

Stack Overflow用户
提问于 2015-03-27 01:17:32
回答 1查看 415关注 0票数 1

您好,我尝试使用matlab中的urlread2函数向REST API发送请求。一般来说,这已经可以工作了,但是对于一个特定的API调用,API中有一个记录在案的错误:通常我会使用HTTP方法"DELETE“并传递请求,如下所示:

代码语言:javascript
复制
headers  =     [http_createHeader('Content-Type','application/json; charset=UTF-8'),...
                http_createHeader('Accept','application/json; charset=UTF-8'),...
                http_createHeader('X-IG-API-KEY',api_key)];

json_body =  savejson('',body);

response = urlread2(myURL,'DELETE',json_body,headers);

这会导致错误。相反,建议我使用:

代码语言:javascript
复制
headers  =     [http_createHeader('Content-Type','application/json; charset=UTF-8'),...
                http_createHeader('Accept','application/json; charset=UTF-8'),...
                http_createHeader('X-IG-API-KEY',api_key,...
                http_createHeader('_method','DELETE')];

json_body =  savejson('',body);

response = urlread2(myURL,'POST',json_body,headers);

错误的原因据说是,否则,由于未知的原因,消息正文在处理过程中丢失,从而产生错误。

我现在的问题是,这个变通方法可以在沙箱中工作(没有matlab代码!)。但是,使用matlab并不会改变任何事情,两种情况下的响应是相同的。因此,我猜测urlread2函数可能不会按预期处理请求。这里有没有人有主意?

这里的两个依赖项都是众所周知的matlab函数:

JSONlab on matlabCentral urlread2 on matlabCentral

EN

回答 1

Stack Overflow用户

发布于 2015-03-30 05:05:00

urlread2以及原始的urlread依赖于底层的Java类,这些类不支持在delete请求中包含主体

请参阅:HTTP Delete with Request Body issues

页面上没有提到的另一种方法是将Matlab与Python的Requests库连接(需要2014b或更新版本)。我现在正在慢慢地做这件事,因为它应该允许更优雅地处理cookie之类的事情,以及正确地处理默认Java实现中的许多bug(例如在delete方法中不包含主体)。

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

https://stackoverflow.com/questions/29284866

复制
相关文章

相似问题

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