2015-08-24 51 views
1

我的Web客戶端使用URL查詢參數發送GET請求。接收應用程序只能接受帶有JSON主體的POST請求。我想嵌入一個jetty servlet到將GET請求轉換爲POST請求的接收應用程序,並將url參數轉換爲json格式主體。例如Jetty servlet:如何使用JSON主體將具有參數的GET請求轉發爲POST請求?

輸入此網址:http://localhost:8081/?key_1=value_1&key_2=3value_2...&key_n=value_n

預計POST JSON有效載荷:{ 「key_1」: 「VALUE_1」, 「key_2」: 「VALUE_2」 ...... 「key_n」: 「value_n」}

您能否說明如何實現這些功能?

我與其他編程語言一起工作,但是對於java來說是全新的。我真的很感謝你的幫助。

感謝和問候, Fischlein

回答

0

你可以閱讀所有的查詢字符串參數,並把它放到HashMap中。然後使用jackson-json api或google gson api序列化這個hashmap。

傑克遜參考網址:

http://wiki.fasterxml.com/JacksonHome

+0

感謝張貼。我發現了一些代碼,你認爲它適合我的需求嗎? public JSONObject requestParamsToJSON(HttpServletRequest req){JSONObject jsonObj = new JSONObject();}} \t Map params = req.getParameterMap();對於(Map.Entry entry:params.entrySet()){ \t String v [] = entry.getValue(); \t Object o =(v.length == 1)? v [0]:v; \t jsonObj.put(entry.getKey(),o); \t} \t return jsonObj; \t} – Fischlein

0

閱讀從GET請求的參數,創建一個JSON字符串,並用工具庫像http://hc.apache.org/httpclient-3.x/

+0

謝謝。您能否演示如何使用org.eclipse.jetty.client.HttpClient發送發佈請求?我沒有理解。 – Fischlein