動態

詳情 返回 返回

uni.connectSocket真機調試報錯open fail:_code:20,_msg:Invalid HTTP - 動態 詳情

在微信開發者工具上uni.connectSocket的連接是正常的,一旦到真機預覽就連接報錯了,不管是真機預覽還是體驗版真機都會報錯。
真機報錯如下:open fail:_code:20,_msg:Invalid HTTP

最後在查找各種資料發現websocketurl不能包含特殊字符,必須轉碼才可以
比如我下面在url上拼接了一個token,這個token可能包含特殊字符(如 =、&、+ 等),這些字符在 URL 中有特殊含義(如 & 用於分隔參數)。如果直接拼接未編碼的 token,可能會導致 URL 解析錯誤
通過encodeURI將你的url參數轉碼即可,對URL中不符合規範的字符進行編碼確保整個URL格式正確

encodeURI會將空格轉為 %20,將 & 轉為 %26
this.SocketTask = uni.connectSocket({
  url: this.url + '?access_token=' + encodeURI(this.token),
  method: 'GET',
  success: (e) => {
    console.log('連接成功', e);
  },
  fail: (e) => {
    console.log('連接失敗', e);
  }
})

參考文章:https://blog.csdn.net/dujyong/article/details/105507581

user avatar xboxyan 頭像
點贊 1 用戶, 點贊了這篇動態!
點贊

Add a new 評論

Some HTML is okay.