自己生成网络后台接口并利用charles模拟Http请求和响应

来源:互联网 发布:室内平面方案户型优化 编辑:程序博客网 时间:2024/06/05 08:57

最新项目组服务端的童鞋们太不给力了,接口一直没有出来,为了方便开发。服务器的童鞋们定义好了http接口以及返回的json结构。然后客户端就可以利用json结构,模拟数据,然后顺利开发,最后等服务器接口完成的时候,再次做一下联合调试。

这样的方法,有专业的名字mock。

下面介绍下怎样利用mock http响应。

比如有个http接口

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

返回的json结构如下。

[java] view plain copy
  1. {  
  2.   "hello""world"  
  3. }  
我们可以利用下面的网站,模拟一个这样的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的设置,就可以访问正常的接口。

0 0
原创粉丝点击