Мы пытаемся вернуть JSON из внешнего API, который мы вызываем через Rest в Siebel. Установка свойства HDR.Accept ничего не делает, Siebel просто продолжает передавать * / * (показано через вход в Tomcat), что заставляет API возвращать XML вместо JSON.
Мы вызвали тот же API с правильным заголовкомчерез почтальона и получил ответ в формате JSON. Кто-нибудь знает другое свойство, которое можно установить в Siebel для переопределения заголовка Accept? Или они уже видели эту проблему раньше?
Я пытался установить многие свойства, такие как siebel_transport_header: Accept, чтобы Siebel мог применять заголовок Accept, обычно это для пользовательских заголовков, а не для стандартного типа Accept. Я также попробовал HttpAccept, который является старым способом сделать это с EAI, который Siebel вставляет как свойство в JSON, которое не требуется от API.
Вот пример кода eScript:
var outputs = TheApplication().NewPropertySet();
var auth = "auth here"
var io = TheApplication().NewPropertySet();
io.SetType("type");
io.SetProperty("property", value);
io.SetProperty("HDR.Authorization", "Basic " + auth);
io.SetProperty("HDR.Content-Type", "application/json");
io.SetProperty("HDR.Accept", "application/json");
io.SetProperty("isExternalURL", true);
service.InvokeMethod("REST_client-...:post", io, outputs);
Вот журнал JBS (конфиденциальная информация, конечно, исключена):
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:43.890] [RESTOutbound] Target URL : https://...
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:43.890] [RESTOutbound] UserName : null
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:43.890] [RESTOutbound] calling conversion module to convert PS into JSON
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:43.890] [RESTOutbound] converted JSON : {"prop1":"prop1"}
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:43.890] [RESTOutbound] calling HttpCaller module for outbound call
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:44.028] [RESTOutbound] response from outbound call : <?xml version="1.0" encoding="UTF-8" standalone="yes"?><api:response xmlns:api="h"><api:prop1>prop1</api:prop1><api:prop2>prop</api:prop2></api:response>
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:44.028] [RESTOutbound] calling conversion module to convert JSON into PS
[SIEBEL INFO] Thread[http-exec-8,5,main] [2019-10-24 13:47:44.028] [JBSFactory] Returning the Object to JMS Pool with SiebelTaskID: .siebel.apps.shared.xmlp.RESTOutboundBusvc