Я создаю HTTP-адаптер для получения информации об активах в IBM Rational Asset Manager (RAM) через свой REST API. Я могу получить все активы в оперативной памяти сHTTP-адаптер Worklight - параметры со специальными символами
https://<server>/tools/cm/ram/oslc/simpleQuery
Это прекрасно работает в браузере, используя RESTClient в Firefox и от моего адаптера при вызове с
var input = {
method : 'get',
returnedContentType : 'xml',
path : 'tools/cm/ram/oslc/simpleQuery'
};
return WL.Server.invokeHttp(input);
Проблема в том, что я получаю сотни активов в мой ответ. Я хотел бы, чтобы отфильтровать ответ от RAM, используя запрос, как
https://<server>/tools/cm/ram/oslc/simpleQuery?query=ram_asset:community="My Community"
Это отлично работает в браузере или RESTClient.
Но когда я добавить параметр запроса на мой адаптер с
var input = {
method : 'get',
returnedContentType : 'xml',
path : 'tools/cm/ram/oslc/simpleQuery',
parameters : {"query" : 'ram_asset:community="My Community"'
};
return WL.Server.invokeHttp(input);
RAM не возвращает активы. Это заставляет меня думать, что параметры не добавляются в URI правильно. Я подозреваю, что это может быть потому, что в запросе есть специальные символы (':' и '='). Я пробовал кодирование с% 3A и% 3D без везения.
Per предложения от других пользователей, я также попробовал, включая параметры запроса непосредственно на пути с кодировкой, но все еще не получает ничего вернулось из памяти:
var input = {
method : 'get',
returnedContentType : 'xml',
path : 'tools/cm/ram/oslc/simpleQuery?query=ram_asset:community%3D%22My+Community%22'
};
Возможно ли, что адаптер WL не обрабатывает параметры правильно? Любые идеи о том, как обойти это?
Я попытался бы отправить параметры, как описано в ответе на этот вопрос: http://stackoverflow.com/questions/25600168/send-request-with-parameter-ibm-worklight –
Эта помощь полна? path: "tools/cm/ram/oslc/simpleQuery? query = ram_asset: community = 'My Community'". в переменной ввода – dhineshsundar
Если это ваш путь, то да. Это работает...? –