微信小程序 網絡請求之re.request 和那些坑

微信小程序有四種網絡請求類型,下面只詳細介紹普通HTTPS請求(wx.request)html

  1. 普通HTTPS請求(wx.request)
  2. 上傳文件(wx.uploadFile)
  3. 下載文件(wx.downloadFile)
  4. WebSocket通訊(wx.connectSocket)

首先,先確認是否設置了合法域名,或者在開發環境下不校驗合法域名。關於設置合法域名請看→微信小程序 網絡請求之設置合法域名json

 

如下是wx.request的詳細說明,截圖於微信小程序開發文檔小程序

 

在微信index.js 發起一個普通HTTPS請求,上代碼微信小程序

 wx.request({
      url: 'http://localhost:8800/ws_member.asmx/test',
      data: { strCallUserCode: 'test', strCallPassword: '123' },
      method: 'POST', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      header: {
        'content-type': 'application/json'
      },// 設置請求的 header
      success: function (res) {
        if (res.statusCode == 200) {

        } else {
          console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode);
        }
      },
      fail: function () {
        console.log("index.js wx.request CheckCallUser fail");
      },
      complete: function () {
        // complete
      }
    })

 

下面是一些須要注意的地方服務器

1)data微信

     1.data 數聽說明 最終發送給服務器的數據是 String 類型,若是傳入的 data 不是 String 類型,會被轉換成 String 。轉換規則以下:網絡

  • 對於 header['content-type'] 爲 'application/json' 的數據,會對數據進行 JSON 序列化
  • 對於 header['content-type'] 爲 'application/x-www-form-urlencoded' 的數據,會將數據轉換成 query string (encodeURIComponent(k)=encodeURIComponent(v)&encodeURIComponent(k)=encodeURIComponent(v)...)

   

2).method app

    1.默認爲 GET,有效值:OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECTpost

    2.值必須爲大寫url

 

3) header

    1.header 爲 application/json,接口傳回來的參數要是json 格式的,不然會報500錯誤,好比我接口返回來的參數是xml則header['content-type'] 要設置爲'application/x-www-form-urlencoded'

 

踩過的坑

請求接口 res.statusCode一直是500,顯示如下錯誤

 

 這個錯誤的緣由是 header['content-type'] 我設置爲 'application/json',而接口返回的參數類型爲xml格式

 若是接口返回的參數不是json 格式, header['content-type']請設置爲'application/x-www-form-urlencoded',那麼返回的參數是string類型的,處理的話有點麻煩。

 我把 header['content-type']設置爲 'application/json',修改接口,使其返回的參數是json格式的 那就好處理多了。

 在發開中能夠把一些錯誤信息輸出在控制檯後,方便看,調試徹底沒問題後再去掉。

相關文章
相關標籤/搜索