收藏
回答

wx.connectSocket 2个BUG

问题模块
API和组件


1、data 参数填了没用

2、无法在url中传入参数 +,比如 ws://a.com?p=1+2,无论是url设置为 ws://a.com?p=1+2 或者 ws://a.com?p=1%2B2 后台接收到的 p 参数值总是为 “1 2”


此bug仅在安卓真机下会出现(测试手机型号为华为 meta8)

最后一次编辑于  2017-08-28  (未经腾讯允许,不得转载)
邀请回答
复制链接收藏投诉关注问题回答

7 个回答

  • GODOG
    GODOG
    2017-08-28

    请问后台是用什么函数接收的参数?方便截图发下代码吗

    2017-08-28
    赞同
    回复
  • ꯭极꯭度꯭深꯭寒꯭
    ꯭极꯭度꯭深꯭寒꯭
    2017-08-28

    我的后台是 C# SignalR ,

    没有经过任何转换,直接把  wx.connectSocket 转到后台的参数输出来,在ios和微信开发者工具上是没有任何问题的,但是在安卓真机上,参数里只要有加号的,直接变成了空格

    2017-08-28
    赞同
    回复
  • @Gordo
    @Gordo
    2017-08-28

    转码问题。  不能有+号, 在客户端 进行urlencode转义一下。。 这样就行了。

    至于为什么开发工具没这个问题不清楚。


    正确用法是需要转义的。   C# 后台对于任何的有+号的 url 都会变成空格


    2017-08-28
    赞同
    回复
  • ꯭极꯭度꯭深꯭寒꯭
    ꯭极꯭度꯭深꯭寒꯭
    2017-08-28

    回4楼,我的问题说的很清楚,客户端已经转了码

    2017-08-28
    赞同
    回复
  • @Gordo
    @Gordo
    2017-08-29

    回楼主, 这个问题很容易查看, 你直接看你探测你HTTP网络协议,或者自己用POSTMAN等工具进行测试一下就可以了。

    我很久以前就遇到过+号问题,而且后端就是采用C#来做的。 忘记了怎么做的了。

    你可以试试: urlencode(htmlencode(你的token))

    或者你google: asp.net querystring  plus sign

    还有解决方案是C#后台replace(" ","+")

    2017-08-29
    赞同
    回复
  • ꯭极꯭度꯭深꯭寒꯭
    ꯭极꯭度꯭深꯭寒꯭
    2017-08-29

    确实是的 connectSocket 的一个bug,无法发送+号,已经采用 replace(" ","+")了,谢谢楼上

    2017-08-29
    赞同
    回复
  • 小松
    小松
    2017-08-29

    header也无法传 开发工具不行

    2017-08-29
    赞同
    回复