POST асинхронный запрос

Выполните асинхронный запрос к серверу

Описание

Используйте метод POST, чтобы выполнить асинхронный запрос к серверу. Во время асинхронного выполнения этот шаг является обычно первым в процессе.

Запрос

Метод HTTP

POST

URI

http://host:port/deployedArchiveName/matlabFunctionName

Параметры запроса

ИмяОписаниеТип значения
mode

(Требуемый). Задайте режим коммуникации.

async

client

(Необязательно). Задайте ID или имя для клиента, выполняющего запрос.

{client-id-string}

Пример:

?mode=async&client=Nor101

ContentType

application/json

Тело

ИмяОписаниеТип значения
nargout

Количество выходных параметров, которые клиентское приложение запрашивает от развернутой функции MATLAB®. Обратите внимание на то, что функции MATLAB, в зависимости от их намеченной цели, может быть закодирован, чтобы возвратить несколько выходных параметров. Подмножество этих потенциальных выходных параметров может быть задано с помощью nargout.

number
rhs

Входные параметры к развернутой функции MATLAB, заданной как массив разделенных от запятой значений.

[arg1,arg2,arg3,...]
outputFormat

Задайте, должен ли выходной параметр MATLAB в ответе быть возвращен с помощью большого или маленького представления JSON, и должны ли NaN и Inf быть представлены как строка 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" }
}

Ответ

Успех

Код состояния HTTP

201 Created

Тело

ИмяОписаниеТип значения
idID конкретного запроса.{id-string}
selfURI конкретного запроса.{request-uri-string}
upURI набора запросов, связанных к конкретному клиенту.{request-collection-uri-string}
lastModifiedSeqНомер, указывающий, когда запрос, представленный self, был в последний раз изменен.{server-state-number}
stateСостояние запроса.{request-state-string}

Список состояний:

READING
IN_QUEUE
PROCESSING
READY
ERROR
CANCELLED

clientКлиентский ID/имя, который был задан как параметр запроса при инициировании запроса.{client-id-string}

Пример:

{
  "id": "a061c723-4724-42a0-b405-329cb8c373d6",
  "self": "/~e4a954fd-5eaf-4b54-aac2-20681b33d075/requests/a061c723-4724-42a0-b405-329cb8c373d6",
  "up": "/~e4a954fd-5eaf-4b54-aac2-20681b33d075/requests",
  "lastModifiedSeq": 6,
  "state": "READING",
  "client": ""
}

Ошибка

Код состояния HTTP

404 ResourceNotFound

405 MethodNotAllowed — Никакой заголовок 'Access-Control-Allow-Origin'. Включите CORS на сервере.

415 InvalidContentType

415 UnsupportedMediaType

Демонстрационный вызов

HTTP

Запрос:

POST /mymagic/mymagic?mode=async HTTP/1.1
Host: localhost:9910 
Content-Type: application/json

{"rhs":[7],"nargout":1,"outputFormat":{"mode":"small","nanType":"string"}}

Ответ:

Status Code: 201 Created
Header: 
  Location: /~e4a954fd-5eaf-4b54-aac2-20681b33d075/requests/ad2363f3-26c1-4d48-88f8-6b7fb615f254
  X-MPS-Start-Time: 003472d705bd1cd2
  Content-Length: 248 
Body: 
{
  "id": "ad2363f3-26c1-4d48-88f8-6b7fb615f254",
  "self": "/~e4a954fd-5eaf-4b54-aac2-20681b33d075/requests/ad2363f3-26c1-4d48-88f8-6b7fb615f254",
  "up": "/~e4a954fd-5eaf-4b54-aac2-20681b33d075/requests",
  "lastModifiedSeq": 41,
  "state": "READING",
  "client": ""
}

JavaScript

var data = JSON.stringify(
    {   "rhs": [7],
        "nargout": 1,
        "outputFormat": {"mode": "small","nanType": "string"}
    }
);

var xhr = new XMLHttpRequest();
xhr.open("POST", "http://localhost:9910/mymagic/mymagic?mode=async");
xhr.setRequestHeader("content-type", "application/json");
xhr.addEventListener("readystatechange", function () {
    if (this.readyState === 4) {
        console.log(this.responseText);
    }
});
xhr.send(data);

Введенный в R2017b