POST Synchronous Request
向服务器发起同步请求,并等待响应
描述
使用 POST 方法向服务器发出同步请求。在同步模式下,服务器收到请求后,服务器上的工作进程进程模块所有进一步的请求,直到完成对原始请求的处理。处理完成后,工作进程会自动向客户端返回响应。不需要其他 HTTP 方法来从服务器检索响应。
服务器可以同时执行与可用工作进程数量一样多的同步请求。
以下部分使用 JSON 作为数据序列化格式。有关如何使用 protobuf 作为 Java® 客户端 API 的数据序列化格式的示例,请参阅 在 Java 客户端中使用协议缓冲区同步 RESTful 请求,如何使用 .NET 客户端 API 的数据序列化格式,请参阅 在 .NET 客户端中使用协议缓冲区同步 RESTful 请求。
请求
HTTP 方法
POST
URI
http://host:port/deployedArchiveName/matlabFunctionName
查询参数
无。
Content-Type
application/json
主体
| 名称 | 描述 | 值类型 |
|---|---|---|
nargout | 客户端应用程序从已部署的 MATLAB® 函数请求的输出数量。请注意,MATLAB 函数可以根据其预期用途进行编码以返回多个输出。可以使用 | number |
rhs | 已部署的 MATLAB 函数的输入参量,指定为逗号分隔值的数组。 | [arg1,arg2,arg3,...] |
outputFormat | 指定响应中的 MATLAB 输出是否应使用大 JSON 表示法或小 JSON 表示法返回,以及 有关 MATLAB 数据类型的 JSON 表示的更多信息,请参阅 MATLAB 数据类型的 JSON 表示。 | { "mode" : "small | large", "nanInfFormat" : "string | object" } |
示例:
单一输入参量:
{
"nargout": 1,
"rhs": [5],
"outputFormat": { "mode" : "small", "nanInfFormat" : "object" }
}{
"nargout": 2,
"rhs": [3, 4, 5 ...],
"outputFormat": { "mode" : "large", "nanInfFormat" : "string" }
}响应
成功
200 OK
| 名称 | 描述 | 值类型 |
|---|---|---|
lhs | 来自服务器的响应中包含的 JSON |
|
示例:
{
"lhs":[[[17,24,1,8,15],[23,5,7,14,16],[4,6,13,20,22],[10,12,19,21,3],[11,18,25,2,9]]]
} |
错误
400 InvalidJSON
404 FunctionNotFound
404 ComponentNotFound
示例调用
HTTP
请求: POST /mymagic/mymagic HTTP/1.1
Host: localhost:9910
Content-Type: application/json
{"rhs":[5],"nargout":1,"outputFormat":{"mode":"small","nanType":"string"}}响应: Status Code: 200 OK
{
"lhs":[[[17,24,1,8,15],[23,5,7,14,16],[4,6,13,20,22],[10,12,19,21,3],[11,18,25,2,9]]]
} |
JavaScript
var data = JSON.stringify({
"rhs": [5],
"nargout": 1,
"outputFormat": {"mode": "small", "nanType": "string"}
});
var xhr = new XMLHttpRequest();
xhr.addEventListener("readystatechange", function () {
if (this.readyState === 4) {
console.log(this.responseText);
}
});
xhr.open("POST", "http://localhost:9910/mymagic/mymagic");
xhr.setRequestHeader("content-type", "application/json");
xhr.send(data); |
版本历史记录
在 R2016a 中推出