利用charles模擬Http請求和響應

fi763635 8年前發布 | 45K 次閱讀

來自: http://blog.csdn.net//guijiaoba/article/details/43198503


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

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

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

比如有個http接口

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

返回的json結構如下。

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

http://dtjson.com/


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

http://dtjson.com/v2/54c76c669663e6eb041a7281


至此,我們假的接口已經完成了,那么在客戶端代碼里面是否要把http://xx.oo.com/api/helloworld替換成http://dtjson.com/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的設置,就可以訪問正常的接口。



 本文由用戶 fi763635 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!