微信小程式request請求的詳細介紹

高洛峰
發布: 2017-03-26 13:29:54
原創
3558 人瀏覽過

談談微信小程式的資料互動---wx.request

官方文件中明確說明,wx.request發起的是https的請求,如果你的伺服器是http站點,那需要做配置。可以參考文章:http轉https教學

但如果你沒有服務端或不想寫後台程式碼,這裡是可以呼叫我提供的接口,本文會介紹使用方法。

首先,我們應該從服務端開始準備,我用的是java。框架是spring+springMVC+spring data 。

介面https://www.itit123.cn/itdragon/findAll 的controller層 

原始碼:

@RequestMapping(value="findAll")
	@ResponseBody
	public Object listWxDatas(@RequestParam(value = "page", defaultValue = "1") int pageNumber,
			@RequestParam(value = "pageSize", defaultValue = PAGE_SIZE) int pageSize,
			@RequestParam(value = "sortType", defaultValue = "auto") String sortType, 
			ServletRequest request){
		pageSize = pageSize > 10? 10 : pageSize;
        try {
			Map<string> searchParams = Servlets.getParametersStartingWith(request, "search_");
			Page<wxdata> WxDatas = wxDataService.getWxData(searchParams, pageNumber, pageSize, sortType);
			List<map>> resultList = new ArrayList<map>>();
			for (WxData WxData : WxDatas) {
				Map<string> resultMap = new HashMap<string>();
				resultMap.put("id", WxData.getId());
				resultMap.put("title", WxData.getTitle());
				resultMap.put("content", WxData.getContent());
				resultMap.put("src", WxData.getImageUrl());
				resultMap.put("time", WxData.getCreatedDate());
				resultList.add(resultMap);
			}
			return gson.toJson(resultList);
        } catch (Exception e) {
			e.printStackTrace();
		}  
        return null;
	}</string></string></map></map></wxdata></string>
登入後複製

程式碼大致邏輯是一次最多查10個數據,並以id降序排序輸出結果。程式碼並沒有把整個物件放在一個集合中,而是把需要的內容(id,文章標題,預讀內容,主圖,創建時間)放在一個map,在放到集合轉成json格式回傳資料。 (註:程式碼只針對現在的需求(查詢資料),後續做下拉刷新,上拉加載,搜尋排序時,可能會修改程式碼 。分頁查詢:微信小程式入門五上滑載入下拉刷新)。

服務端介面程式碼準備好後,不能急著上線測試,可以用google瀏覽器的 postman。

微信小程式request請求的詳細介紹

查看列印結果,以確保成功

微信小程式request請求的詳細介紹

#然後開始在微信小程式端,準備一個測試頁面來進行數據互動。

test.wxml:

<view>
    <textarea></textarea>
</view>
<button>request</button>
登入後複製

test.js: 

Page({
  data: {
    textdata: "测试 wx.request",
  },
  RequestData: function () {
    var that = this;
    wx.request({
      url: 'https://www.itit123.cn/itdragon/findAll',
      data: {},
      method: 'GET', // OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT
      // header: {}, // 设置请求的 header 默认是application/json
      success: function (res) {
        // 操作json数据
        var text ="";
        for(var i in res.data) {
          text += i + "." + res.data[i].title + "\r\n";
        }
        that.setData({ textdata: text});
      },
      fail: function () {
        // fail
      },
      complete: function () {
        // complete
      }
    })
  },
  onLoad: function (options) {
    // 页面初始化 options为页面跳转所带来的参数
  },
  onReady: function () {
    // 页面渲染完成
  },
  onShow: function () {
    // 页面显示
  },
  onHide: function () {
    // 页面隐藏
  },
  onUnload: function () {
    // 页面关闭
  }
})
登入後複製


測試頁面的效果圖:

微信小程式request請求的詳細介紹

測試沒有問題,那就在list.js中修改程式碼。

可以依照自己的需求修改。 (我只是將func改成了ajax)

// pages/list/list.js
var app = getApp();
Page({
  data:{
    msgList:[]
  },
  onLoad:function(options){
    // 页面初始化 options为页面跳转所带来的参数
    var that = this
    app.ajax.req('/itdragon/findAll',{},function(res){  
      that.setData({
        msgList:res
      })
    });
  },
  onReady:function(){
    // 页面渲染完成
  },
  onShow:function(){
    // 页面显示
  },
  onHide:function(){
    // 页面隐藏
  },
  onUnload:function(){
    // 页面关闭
  }
})
登入後複製


因為傳回的資料結構,剛好是我需要的格式,所以直接賦值了。

效果圖:

微信小程式request請求的詳細介紹

這章學習要點:

1.wx.request 的使用 微信官方文件 。

2.如何為變數賦值 var that = this; that.setData({變數名稱:變數值})。

3.開發的思路。

以上是微信小程式request請求的詳細介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!