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 で導入