Невозможно получить доступ к значениям параметра POST - IIB Esql - PullRequest
0 голосов
/ 14 января 2020

Так что я довольно новичок в IIB и Extended SQL, но то, что я хочу сделать, должно быть прямым. У меня есть приложение REST, который имеет ресурс, который подключен к подпотоку. Я хочу передать входное значение службе и использовать ее для вызова удаленного веб-сервиса с использованием узла HTTP-запроса, как показано ниже

SET OutputLocalEnvironment.Destination.HTTP.RequestLine.Method = 'POST';
SET OutputLocalEnvironment.Destination.HTTP.RequestURL = 'http://localhost:8002/MyService';
SET OutputLocalEnvironment.Destination.HTTP.QueryString.RemoteParam= InputLocalEnvironment.REST.Input.Parameters.myValue;

Что происходит, когда я вызываю Метод REST и передать значение как GET, я могу получить доступ к значению. Однако, когда я передаю значение параметра с помощью POST, я не могу получить доступ к значению. Мой текущий поток выглядит следующим образом:

Вход> Вычислить> HTTPRequest> Вычислить> Выход

Я выполнил поиск в Google и применил все рекомендации (например, установив вычислительный узел в LocalEnvironment ) но ничего не работает.

Ответы [ 2 ]

0 голосов
/ 21 января 2020

После дальнейших исследований я обнаружил, что IIB не анализирует автоматически контент, представленный как приложение / x- www-form-urlencoded. Я вставил узел трассировки и понял, что параметры вместо этого представлены в виде BLOB. Все, что мне нужно было сделать, это прочитать BLOB-объект, привести его к строке, а затем использовать функцию Split или модель сообщения для получения отдельных параметров. Спасибо за указатели

0 голосов
/ 21 января 2020

Что ж, нам нужно больше информации, чтобы решить вашу проблему, но я полагаю, у вас есть проблема в ваших HTTP request node

Go до HTTP request, а затем в properties go до HTTP setting и измените HTTP method на метод, который вы используете (получить или опубликовать)

, и если вы хотите увидеть, выбираете ли вы данные из правильного свойства, просто отладчик обеда и установите точку прерывания до и после вашего узлы, то вы можете увидеть, какие данные вы получаете на каждом уровне, и вы можете вызвать соответствующее свойство.

пс. не забудьте развернуть свой проект снова, чтобы увидеть новые изменения

Я надеюсь, что это работает для вас

...