自己生成網絡後臺接口並利用charles模擬Http請求和響應

最新項目組服務端的童鞋們太不給力了,接口一直沒有出來,爲了方便開發。服務器的童鞋們定義好了http接口以及返回的json結構。然後客戶端就可以利用json結構,模擬數據,然後順利開發,最後等服務器接口完成的時候,再次做一下聯合調試。

這樣的方法,有專業的名字mock。

下面介紹下怎樣利用mock http響應。

比如有個http接口

http://xx.oo.com/api/helloworld

返回的json結構如下。

{
  "hello": "world"
}
我們可以利用下面的網站,模擬一個這樣的json響應。

http://www.mocky.io/


點擊Generate my HTTP Response 會生成一個url,訪問這個url就可以返回你需要的json字符串。上面我定義的json,生成的url如下,點擊訪問,就可以得到。

http://www.mocky.io/v2/54c76c669663e6eb041a7281


至此,我們假的接口已經完成了,那麼在客戶端代碼裏面是否要把http://xx.oo.com/api/helloworld替換成http://www.mocky.io/v2/54c76c669663e6eb041a7281呢。

當然不是了,我們可以利用一個工具,charles,這個可以代理Android模擬器或者手機,監聽所有的http訪問,同時它還有修改http請求和響應的功能,功能很是強大。


具體的charles介紹,這裏不做介紹,可以參考 http://blog.chinaunix.net/uid-21633169-id-4329277.html,裏面詳細介紹了charles的主要用法。


在android模擬器 http://xx.oo.com/api/helloworld,是沒有響應的,因爲這個是我隨便填寫的url,接下來我們用charles來mock請求


下面是利用charles攔截的http請求結果,在這裏我們可以看http協議,包括請求行,頭文件等。但是在response的標籤裏面是空白的,因爲這個請求是沒有響應的。



我們設置下這個請求,右擊這個請求,出現如下菜單,我們選擇Map Remote.然後填上我需要的代理地址,點擊確定,然後重新訪問。


然後就能順利訪問了。





至此,所有模擬請求數據的步驟已經完成。在實際開發中,只要生成模擬的測試,就可以順利跳過等待接口的步驟,繼續工作,等到接口完成的時候,去除remote map的設置,就可以訪問正常的接口。

發佈了7 篇原創文章 · 獲贊 60 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章