exponenta event banner

POST Synchronous Request

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

Описание

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

Сервер может одновременно выполнить столько же синхронных запросов сколько количество доступных рабочих.

Следующие разделы используют JSON в качестве формата сериализации данных. Для примера, который показывает, как использовать protobuf в качестве формата сериализации данных с Java® клиентский API, смотрите Синхронные УСПОКОИТЕЛЬНЫЕ Просьбы Использовать Буферы Протокола в Клиенте Java (MATLAB Production Server), и с клиентским API.NET, смотрите Синхронные УСПОКОИТЕЛЬНЫЕ Просьбы Использовать Буферы Протокола в Клиенте.NET (MATLAB Production Server).

Запрос

Метод HTTP

POST

URI

http://host:port/deployedArchiveName/matlabFunctionName

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

'none'.

ContentType

  • application/json

Тело

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

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

number
rhs

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

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

Задайте, должен ли MATLAB выход в ответе быть возвращен с помощью большого или маленького обозначения JSON, и ли NaN и Inf должен быть представлен как строка JSON или объект. Если mode не задан или возвращенный тип данных MATLAB не поддерживает маленькое обозначение JSON, ответ представлен с помощью JSON большое обозначение.

Для получения дополнительной информации о представлении JSON типов данных MATLAB см. Представление JSON типов данных MATLAB (MATLAB Production Server).

{ "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

200 OK

Тело

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

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

[output1, output2, ...]

Пример:

{
"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]]]
}

Ошибка

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

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