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


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

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

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

 

以下是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 

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

    2.值必須為大寫

 

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格式的 那就好處理多了。

 在發開中可以把一些錯誤信息輸出在控制台后,方便看,調試完全沒問題后再去掉。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM