Отправить JSON запрос
Сейчас часто используется JSON при обмене сообщениями в REST API. Команда Отправить JSON запрос отправляет JSON запрос по указанному URL адресу и сохраняет полученный ответ в переменную объект. Вам не нужно будет дополнительно парсить JSON ответ.

URL
Укажите URL, куда будет отправлен JSON HTTP запрос.
JSON
Укажите отправляемые JSON данные. По умолчанию запрос отправляет данные POST методом, но если это поле пустое, то запрос будет отправлен GET методом.
Имя переменной
Укажите имя переменной, в которую будет записан ответ сервера. Также будет создана переменная объект в которую будет распарсен полученный JSON ответ. Например, вы указали в этом поле myresp. Тогда при ответе сервера вы можете использовать следующие значения.
1#myresp# => 2#myresp.id# => 10 3#myresp.state# => success
Заголовки
При необходимости вы можете определить дополнительные заголовки запроса. Например, Authorization. Заголовок Content-Type цказывать не нужно. Он будет добавлен автоматически со значением application/json; charset=UTF-8.
Опциональные параметры
Вы можете указать дополнительные параметры.
response
Имя переменной объекта, которая будет содержать статус ответа. Она будет иметь два поля:
- statuscode — код статуса;
- status — статус ответа.
Например, если определить response: resp, то при успешном вызове скрипта будут следующие значения.
1#resp.statuscode# => 200 2#resp.status# => 200 OK
Следует заметить, что если вы не определите этот параметр и сервер вернёт код статуса меньше 200 или больше 299, то в этом случае, скрипт не будет парсить ответ сервера и вернёт ошибку. Если этот параметр указан, то вы самостоятельно можете обработать ошибочный ответ сервера.
Как отправить запрос на сервер в виде json
Всех приветствую не давно начал изучать js и хочу сделать авторизацию по api, запрос отправляю через ajax (Jquery) но на сервере вижу log=admin&pass=passs вместо ожидаемого
function push(login,password)< $.ajax(< type: "POST", url: "http://localhost/status", cahce: false, contentType:"application/json; charset=UTF-8; application/x-www-form-urlencoded", dataType: "json", data: , success: function(result) < console.log(result) >>);> function input_v()
Document login
pass

Отслеживать
задан 15 янв 2022 в 17:19
user325153 user325153
39 7 7 бронзовых знаков
Ну Вы уж определитесь contentType у Вас должен быть «application/json;» или «application/x-www-form-urlencoded» , а то указано и то и то.
15 янв 2022 в 17:53
data: JSON.stringify(. ) . Ну либо переходить на axios или fetch. Там json из коробки отправляется
Отправить JSON на внешний веб-сайт
Выходной коннектор Отправить JSON на внешний WebSocket может использоваться для отправки данных события, адаптированных и отформатированных как стандартный JSON, на внешний веб-сайт. ArcGIS GeoEvent Server , как клиент, отправляет JSON на внешний веб-сайт используя запрос HTTP/POST.
Примечания по использованию
При использовании внешнего коннектора Отправить JSON на внешний веб-сайт имейте в виду следующее:
- Этот выходной коннектор адаптирует данные событий как стандартный JSON, в отличие от объекта JSON или GeoJSON.
- Этот выходной коннектор связывает исходящий адаптер универсального файла JSON с HTTP Outbound Transport.
- Запись в универсальном файле JSON не обязательно должна содержать данные, представляющие геометрию. На внешний веб-сайт могут отправляться непространственные данные.
- Параметры запросов могут задаваться отдельно в свойстве Параметры или как часть параметра URL .
- Для этого выходного коннектора предполагается, что внешний веб-сервер или веб-сервис принимают запросы HTTP/POST не требуя аутентификации. Если внешние веб-сайты требуют аутентификацию, можно создать собственный выходной коннектор, который использует Generic JSON Outbound Adapter и HTTP Outbound Transport, поддерживающие базовую, сертифицированную или OAuth аутентификацию.
Параметры
Ниже приведены параметры внешнего коннектора Отправить JSON на внешний веб-сайт:
Описательное имя выходного коннектора, используемое для ссылки в GeoEvent Manager .
Базовый URL внешнего веб-сайта, на котором будут опубликованы данные. GeoEvent Server отправляет запрос HTTP/POST на URL-адрес для отправки данных JSON.
Имя параметра заголовка:Список значений
Параметры, включаемые в HTTP-заголовок запроса при опросе внешнего веб-сервера или веб-сервиса. Параметры заголовка должны быть заданы с помощью пар Имя: Значение (включая двоеточие), разделенных запятыми.
- Да – исходный JSON будет форматироваться (подготавливаться).
- Нет – исходный JSON не будет форматироваться.
Задает параметр запроса (или несколько параметров запроса) для присоединения к базовому URL. Параметры запроса будут разными для каждого веб-сервиса и поддерживаются не всеми сервисами. Если поддерживаются, параметры запроса помогают указать данные, представляющие особый интерес. У этого параметра нет значения по умолчанию.
Использовать URL-адрес прокси
- Да – GeoEvent Server будет использовать указанный прокси-сервер при отправке запроса на URL-адрес внешнего сервиса.
- Нет – GeoEvent Server не будет использовать URL-прокси-сервера. Доступ к базовому URL будет выполняться напрямую.
URL прокси для использования в время запроса HTTP.
Параметр показывается, когда для свойства Использовать URL-адрес прокси задано значение Да , и скрыто, если задано значение Нет .
Тип MIME тела сообщения
Задает тип MIME данных, включенных в тело содержимого HTTP/POST запроса. Типы MIME обычно состоят из структуры типа/подтипа и используются для указания типов интернет-носителей, используемых и принимаемых HTTP-клиентом/сервером. Этот коннектор задает следующий тип MIME для JSON application / json , который является значением по умолчанию для этого параметра.
Ожидание HTTP (в секундах)
Задает максимальное время (в секундах) ожидания выходным коннектором ответа от внешнего веб-сервиса, который отправил запрос HTTP/POST. Указанное значение должно быть задано целым числом от 1 до 2147483. Значение по умолчанию – 30 секунд (HTTP/POST-запрос будет остановлен через 30 секунд, если ответ не получен).
В этом разделе
- Примечания по использованию
- Параметры
Как отправить json запрос на сервер
Чтобы отправить данные на сервер из кода JavaScript в ajax-запросе, в метод send() объекта XMLHttpRequest передаются отправляемые данные.
Для тестирования отправки, как и в прошлых статьях, в качестве сервера будем использовать Node.js, как самой простой вариант. Итак, создадим файл app.js и определим в нем следующий код сервера, который принимает данные:
const http = require("http"); const fs = require("fs"); http.createServer(async (request, response) => < if(request.url == "/user")< let userName= ""; // получаем данные в строку // получаем данные из запроса и добавляем их в строку for await (const chunk of request) < userName += chunk; >userName = userName + " Smith"; response.end(userName); > else < fs.readFile("index.html", (_, data) =>response.end(data)); > >).listen(3000, ()=>console.log("Сервер запущен по адресу http://localhost:3000"));
В данном случае при обращении по адресу «/user» сервер получает все отправленные данные:
if(request.url == "/user")Мы можем перебрать объект запроса и таким образом извлечеть из него полученные данные:
let userName= ""; // получаем данные в строку // получаем данные из запроса и добавляем их в строку for await (const chunk of request)В данном случае отправленные данные в виде объектов chunk добавляются в строку userName . В данном случае мы предполагаем, что на сервер отправляется простая строка с текстом, соответственно каждый кучек данных chunk будет представлять строку.
Также здесь предположим, что клиент отправляет на сервер некоторое имя пользователя. И для примера к этому имени добавляется фамилия и измененное имя отправляется обратно клиенту:
userName = userName + " Smith"; response.end(userName);Теперь определим на странице index.html код для отправки данных на этот сервер:
METANIT.COM Для отправки применяется метод POST. А в качестве отправляемых данных выступает простая строка "Tom". То есть на сервер отправляется простой текст. И поскольку сервер в ответ также отправляет текст, то для получения ответа здесь применяется свойство xhr.responseText . И при запуске данной веб-страницы будет выполняться отправка данных на сервер, и в консоли браузера можно будет увидеть полученный от сервера ответ:
Отправка json
Подобным образом можно отправлять более сложные по структуре данные. Например, рассмотрим отправку json. Для этого на строне node.js определим следующий сервер:
const http = require("http"); const fs = require("fs"); http.createServer(async (request, response) => < if(request.url == "/user")< // получаем строковое представление ответа let data=""; for await (const chunk of request) < data += chunk; >// мы ожидаем данные типа const user = JSON.parse(data); // парсим строку в json // для теста изменяем данные полученного объекта user.name = user.name + " Smith"; user.age += 1; // отправляем измененый объект обратно клиенту response.end(JSON.stringify(user)); > else < fs.readFile("index.html", (_, data) =>response.end(data)); > >).listen(3000, ()=>console.log("Сервер запущен по адресу http://localhost:3000"));В данном случае на сервера ожидаем, что мы получим объект в формате json, который имеет два свойства - name и age. Для примера сервер меняет значения этих свойств и отправляет измененный объект обратно клиенту.
На веб-странице установим объект json для отправки и получим обратно данные:
METANIT.COM Здесь на сервер отправляется объект tom, который имеет два свойства: name и age. Перед отправкой он кодируется в формат json с помощью функции JSON.stringify() .
const data = JSON.stringify(tom);При отправке с помощью метода setRequestHeader() для заголовка "Content-Type" устанавливаем значение "application/json", тем самым указывая, что мы отправляем данные в формате json:
xhr.setRequestHeader("Content-Type", "application/json");В обработчике события load сначала парсим текст ответа из формата json в стандартный объект JavaScript:
const user = JSON.parse(xhr.responseText)Затем выводим данные полученного объекта на консоль браузера:
