繁体   English   中英

通过Java中的Socket.IO进行POST和PUT

[英]POST and PUT via Socket.IO in Java

我正在使用nkzawa的Socket.IO-client.java开发一个Android客户端, 无法弄清楚如何通过套接字通过请求主体中的数据发出POST-或PUT请求。

我设法执行了一个GET请求,它是这样完成的:

...
JSONObject obj = new JSONObject();
obj.put("url", "/list/subscribe/");
socket.emit("get", obj);
...

我尝试将“ get”与“ put”和“ post”交换,并尝试将“ data”和“ body”添加到JSONObject,但是没有成功。 收到的请求正文在服务器上保持为空。

在Sails.js使用数据进行发布请求很容易,而这正是我要对Java客户端执行的操作。 那可能吗?

这是一个解决方案。

  1. 您需要传递另一个JSONObject作为数据

     JSONObject jsonObjectBody = new JSONObject(); try { jsonObjectBody.put("sender", senderId); jsonObjectBody.put("recipient", recipientId); jsonObjectBody.put("message", message); jsonObjectBody.put("shop", shopId); } catch (JSONException e) { e.printStackTrace(); } JSONObject jsonObjectRequest = new JSONObject(); try { jsonObjectRequest.put("url", "/v1/chat/client/messages"); jsonObjectRequest.put("data", jsonObjectBody); } catch (JSONException e) { e.printStackTrace(); } socketInstance.emit("post", jsonObjectRequest, new Ack() { @Override public void call(Object... args) { Log.e("SocketUtil", "User sent a message"); } }); 
  2. 然后在服务器端,您可以得到主体:

     const body = req.body; 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM