错误使用webread和websave从RESTful web服务检索JSON数据

23日视图(30天)
版本的9.7.0.1247435 (R2019b)更新2 '
我试图从web服务返回读取数据使用webread或websave。相应的MATLAB代码如下:
service_url =“https://webservice.testserver.com/results?format=json”;
选择= weboptions (“HeaderFields”,{“授权”api_token});
results_resp = webread (service_url、选择);
返回的错误是:
错误使用matlab.internal.webservices.HTTPConnector / copyContentToFile(第412行)
服务器返回400状态消息请求“坏”来响应请求的URL
错误readContentFromWebService(第62行)
copyContentToFile(连接,文件名);
错误webread(第125行)
[varargout {1: nargout}] = readContentFromWebService(连接,选择);
我也尝试过websave,上面的代码变得:
service_url =“https://webservice.testserver.com/results?format=json”;
选择= weboptions (“HeaderFields”,{“授权”api_token});
results_resp = websave (“the_json_file.txt”、service_url选择);
返回的错误是相似的:
错误使用matlab.internal.webservices.HTTPConnector / copyContentToFile(第412行)
服务器返回400状态消息请求“坏”来响应请求的URL
错误websave(第107行)
copyContentToFile(连接,文件名);
我注意到下面的命令使用curl Linux命令行上效果很好。
curl - h - l“https://webservice.testserver.com?format=json”“授权:api_token”

答案(1)

蒂姆•肯尼迪
蒂姆•肯尼迪 2020年1月2日
作为一个解决方案,我可以解决这个问题通过使用Python模块的请求,调用这个从MATLAB使用以下:
service_url =“https://webservice.testserver.com/results”;
进口py.requests.get
头= py.dict (pyargs (“授权”api_token));
params = py.tuple ({“格式”,json的});
results_resp =得到(service_url pyargs (“头”头,“参数”params));
json_data = jsondecode (native2unicode (results_resp.content));
最后一行将Python results_resp返回响应。内容为MATLAB结构体,在我的例子中,返回的JSON数据格式进行解析。

s manbetx 845


释放

R2019b

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!