POST Synchronous Request
サーバーに同期リクエストを行ってレスポンスを待つ
説明
POST メソッドを使用してサーバーに対して同期リクエストを行います。同期モードでは、サーバーがリクエストを受信すると、元のリクエストの処理を完了するまで、サーバー上のワーカー プロセスがそれ以降のリクエストをすべてブロックします。処理が完了すると、ワーカーは自動的にクライアントにレスポンスを返します。サーバーからレスポンスを取得するために他の HTTP メソッドは必要ありません。
サーバーは、使用可能なワーカーの数と同数の同期リクエストを同時に実行できます。
以下のセクションでは、JSON をデータ シリアル化形式として使用します。Java® クライアント API で protobuf をデータ シリアル化形式として使用する方法を説明する例については、Synchronous RESTful Requests Using Protocol Buffers in the Java Clientを参照してください。.NET クライアント API で protobuf をデータ シリアル化形式として使用する方法を説明する例については、Synchronous RESTful Requests Using Protocol Buffers in .NET Clientを参照してください。
リクエスト
HTTP メソッド
POST
URI
http://host:port/deployedArchiveName/matlabFunctionName
クエリ パラメーター
なし。
コンテンツ タイプ
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 で導入