最新項目組服務端的童鞋們太不給力了,接口一直沒有出來,爲了方便開發。服務器的童鞋們定義好了http接口以及返回的json結構。然後客戶端就可以利用json結構,模擬數據,然後順利開發,最後等服務器接口完成的時候,再次做一下聯合調試。
這樣的方法,有專業的名字mock。
下面介紹下怎樣利用mock http響應。
比如有個http接口
http://xx.oo.com/api/helloworld
返回的json結構如下。
{
"hello": "world"
}
我們可以利用下面的網站,模擬一個這樣的json響應。
點擊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的設置,就可以訪問正常的接口。