websocket传递多个参数,java程序如何读取?

fangsky 2019-12-24 04:28:29
js代码里

var param = "username=张三&token=13";

socket = new WebSocket('ws://'+host+'/AlarmWSkt/'+param);


java代码
@ServerEndpoint("/TWebSocket/{param}")
...
//建立连接
@OnOpen
public void onOpen(Session session, @PathParam("param") String param) throws IOException {
sout(param);
}
可以直接输出结果为:"username=张三&token=13"
请问 java里如何单独取出String username="张三", Integer token=13?


2、js直接传json参数, var param = '{"username":"张三","token":13}';
发现java发现大括号不见了,输出看了下,直接变成"username":"张三","token":13 。 好像不能传递大括号。

我就想传递多个参数,还有其他好的方法吗?谢谢!!
...全文
1727 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
小张爱吃饭 2022-10-26
  • 打赏
  • 举报
回复

可以改成如下:
@ServerEndpoint("/TWebSocket/{userName}/{token}")

public void onOpen(Session session, @PathParam("userName") String userName, @PathParam("token") String token) throws IOException

前端改成:ws://ip:prot/TWebSocket/U000167/1

y打伞的鱼y 2019-12-30
  • 打赏
  • 举报
回复
如果想传递json类型的参数,最好使用post形式。把json放在body内。如果使用get方式传递,用单独的参数接收每个参数即可。没必要拿使用get传在解析成变量
maradona1984 2019-12-25
  • 打赏
  • 举报
回复

var param = "username=张三&token=13";
 
socket = new WebSocket('ws://'+host+'/AlarmWSkt?+param);
服务端正常接收get请求的参数试试,你这种写法很奇怪..
医手 2019-12-25
  • 打赏
  • 举报
回复
正规的方法应该是用send方法来发送数据吧
socket.send(json);
  • 打赏
  • 举报
回复
其实json可以传的,要用javascript的encodeURIComponen对json字符串进行处理。或者用post请求也行

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧