2013-04-08 71 views
0

我嘗試使用HTTP適配器通過Post將JSON對象發送到作爲REST API實現的後端服務。Worklight HTTP適配器 - 在HTTP POST和JSON負載中使用它

有些事情要麼不行,要麼我做錯了。查詢參數不會傳輸到REST服務提供者。無論我將它們添加到路徑中還是添加到調用中的參數對象中。

HTTP適配器始終使用Transfer-Encoding chunked,而此REST接口不接受此選項。有沒有辦法影響HTTP適配器的行爲?

我的電話是這樣的:

function doSomething(data1, data2, payload) { 
    var input = { 
     'method' : 'post', 
     'path' : '/myRESTAPI/SalesOrder', 
     'returnedContentType' : 'json', 

     'headers' : { 
      'Accept-Encoding': 'gzip,deflate', 
      'Content-Type': 'application/json' 
     }, 

     'parameters' : { 
      'data1' : data1, 
      'data2' : data2 
     }, 

     'body': { 
        'contentType' : 'application/json',   
        'content' : payload 
       } 

    }; 
     return WL.Server.invokeHttp(input); 
} 

你看到任何的錯誤,我做了嗎?

+0

你可以在這裏找到答案:http://stackoverflow.com/questions/15340721/worklight-adapter/15346877#15346877 – rooftop 2013-04-08 12:16:52

回答

1

您可以在這裏找到答案:worklight adapter

在5.0.5.x,invokeHttp將採取 放和後提供的路徑上的任何PARAMS並將它們放置在HTTP體內而不是 的它們作爲查詢參數保持在路徑上(因爲開發者可能預期爲 )。這種行爲將在即將到來的版本中更新,但現在還沒有辦法強制這些留作查詢參數。

+0

你好 - 感謝您的快速回復。這意味着路徑變量將不再包含查詢參數,但它們包含在http正文中。在這種情況下會發生什麼情況,如果已經有一個JSON對象,我們要與身體一起POST - 這會被保留或覆蓋。我們發現,只要我們向輸入變量添加一個body {}參數,WL HTTP適配器就切換到Transfer-Encoding:chunked - 是否有辦法影響這一點?任何配置參數?只考慮不支持這個的REST API。在這種情況下,WL HTTP適配器應該能夠適應。 – 2013-04-09 07:29:13

+0

其他評論 - 升級到WorkLight 5.0.6幫助我們擺脫了WL HTTP適配器的一些負面行爲。在v5.0.6中,當我們使用WebSphere Message Broker for Mobile Resources提供的模式調用WL HTTP適配器時,Transfer-Encoding:chunked問題不會發生。 – 2013-04-11 10:55:10