您的位置:首页 > 理论基础 > 计算机网络

利用charles模拟Http请求和响应

2015-01-27 19:13 134 查看
最新项目组服务端的童鞋们太不给力了,接口一直没有出来,为了方便开发。服务器的童鞋们定义好了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的设置,就可以访问正常的接口。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息