热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

使用mocomockhttp请求

使用mocomockhttp请求,Go语言社区,Golang程序员人脉社

moco可以用来模拟http、https、socket请求,这里介绍下最常用的http请求。
大家也可以查看moco关于http请求的官方文档

一、json文件基本格式

moco使用json文件配置请求的基本格式为

[
  {
	请求1
  },
  {
	请求2
  },
	等等
]

每个请求需要包含request和response,description可选。


二、常用关键字

2.1 Description描述

在所有JSON API中,您可以使用description来描述此会话的内容。它只是用作注释,在运行时将被忽略。

[
    {
        "description": "这里用来描述会话的内容,只是注释,运行时忽略",
        "response": {
            "text": "foo"
        }
    }
]

2.2 Request请求部分

moco提供了很多关键字,用于配置request部分的内容。

关键字 描述 格式
text 配置请求内容 字符串
file 若响应内容太多,可以方法文件中,配置存放请求内容的文件名 字符串
uri 请求路径 字符串
queries 用于get请求传递参数 json串
method 请求方式,包括get/post/put/delete等 字符串
version http请求版本号,比如HTTP/1.0 字符串
headers 请求头 json串
COOKIEs COOKIE信息 json串
forms 用于post请求传递参数 json串
match 用于配置符合正则表达式的请求 字符串
json get请求参数为json串
startsWith 以…开头 字符串
endsWith 以…结尾 字符串
contain 包含…内容 字符串
exist 用于判断…请求信息是否存在 字符串

2.3 Response响应部分

关键字 描述 格式
text 配置响应内容 字符串
file 若响应内容太多,可以方法文件中,配置存放响应内容的文件名 字符串
charset 设置文件编码 字符串
status 状态码 int
version http响应版本号,默认情况下,http响应版本号应该是http请求版本号,但是你也可以自行设置响应版本号 字符串
headers 响应头 json串
proxy 我们也可以使用指定的URL进行响应,就像代理一样。
failover 除了基本功能外,代理还支持故障转移,这意味着如果远程服务器暂时不可用,服务器将从本地配置恢复。
playback 回放
redirectTo 重定向
COOKIEs COOKIE信息 json串
json responese为json串



三、举例

例1:get请求带参数

[{
		"description": "模拟一个没有参数的get请求",
		"request": {
			"uri": "/getdemo",
			"method": "get"
		},
		"response": {
			"headers": {
				"Content-Type": "text/html;charset=gbk"
			},
			"text": "这是一个没有参数的get请求"
		}

	}, 
	{
		"description": "模拟一个带参数的get请求",
		"request": {
			"uri": "/getwithparam",
			"method": "get",
			"queries": {
				"name": "zhangsan",
				"age": "18"
			}
		},
		"response": {
			"headers": {
				"Content-Type": "text/html;charset=gbk"
			},
			"text": "我叫张三"
		}

	}

]

在这里插入图片描述

在这里插入图片描述

例2:post请求带参数

[{
		"description": "这是一个没有参数的post请求",
		"request": {
			"uri": "/postdemo",
			"method": "post"
		},
		"response": {
			"headers": {
				"Content-Type": "text/html;charset=gbk"
			},
			"text": "这是mock的post请求"
		}
	},
	{
		"description": "这是一个带参数的post请求",
		"request": {
			"uri": "/postwithparam",
			"method": "post",
			"forms": {
				"name": "zhangsan",
				"age": "18"
			}
		},
		"response": {
			"headers": {
				"Content-Type": "text/html;charset=gbk"
			},
			"text": "我是张三!"

		}
	}

]

不带参数的post请求结果
在这里插入图片描述

在这里插入图片描述
带参数的post请求结果
在这里插入图片描述

在这里插入图片描述


例3:请求/响应带COOKIEs信息

[	
	{
		"description": "这是一个带COOKIEs信息的get请求",
		"request": {
			"uri": "/get/withCOOKIEs",
			"method": "get",
			"COOKIEs": {
				"login": "true"
			}
		},
		"response": {
			"headers": {
					"Content-Type": "text/html;charset=gbk"
				},
			"text": "这是一个需要携带COOKIEs信息才能访问的get请求"
		}
	}, {
		"description": "这是一个带COOKIEs信息的post请求",
		"request": {
			"uri": "/post/withCOOKIEs",
			"method": "post",
			"COOKIEs": {
				"login": "true"
			},
			"json": {
				"name": "zhangsan",
				"age": "18"
			}
		},
		"response": {
			"headers": {
					"Content-Type": "text/html;charset=gbk"
				},
			"status": 200,
			"json": {
				"zhangsan": "success",
				"status": "1"
			}
		}
	},

	{
		"description": "这是一个会返回COOKIEs信息的get请求",
		"request": {
			"uri": "/getCOOKIEs",
			"method": "get"
		},
		"response": {
			"headers": {
					"Content-Type": "text/html;charset=gbk"
				},
			"COOKIEs": {
				"login": "true"
			},
			"text": "恭喜你获得COOKIEs信息"
		}
	}
]

带COOKIEs信息的get请求,执行结果
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

带COOKIEs信息的post请求,执行结果

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

返回COOKIEs信息的get请求,执行结果
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


例4:请求/响应带headers信息

[{
		"description": "这是一个带header信息的post请求",
		"request": {
			"uri": "/post/withHeaders",
			"method": "post",
			"headers": {
				"content-type": "application/json"
			},
			"json": {
				"name": "zhangsan",
				"sex": "male"
			}
		},
		"response": {
			"json": {
				"success": "true",
				"status": "1"
			}
		}
	}
]

执行结果如下:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

例5:重定向

[{
		"description": "重定向到百度",
		"request": {
			"uri": "/redirect"
		},
		"redirectTo": "http://www.baidu.com"
	},

 	{
		"description": "重定向到一个自己的url上",
		"request": {
			"uri": "/redirect/topath"
		},
		"redirectTo": "/redirect/new"
	}, 

	{
		"description": "这是一个被重定向到的请求",
		"request": {
			"uri": "/redirect/new"
		},
		"response": {
			"headers": {
				"Content-Type": "text/html;charset=gbk"
			},
			"text": "重定向到new请求啦"
		}
	}
]

输入localhost:8888/redirect,重定向到了百度,结果如下
在这里插入图片描述

输入http://localhost:8888/redirect/topath,重定向到自己写的url,结果如下
在这里插入图片描述


推荐阅读
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 本文介绍了NetCore WebAPI开发的探索过程,包括新建项目、运行接口获取数据、跨平台部署等。同时还提供了客户端访问代码示例,包括Post函数、服务器post地址、api参数等。详细讲解了部署模式选择、框架依赖和独立部署的区别,以及在Windows和Linux平台上的部署方法。 ... [详细]
  • XMLhttpREquest_Ajax技术总结之XmlHttpRequest
    Ajax1、 什么是ajax   ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • ZSI.generate.Wsdl2PythonError: unsupported local simpleType restriction ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了南邮ctf-web的writeup,包括签到题和md5 collision。在CTF比赛和渗透测试中,可以通过查看源代码、代码注释、页面隐藏元素、超链接和HTTP响应头部来寻找flag或提示信息。利用PHP弱类型,可以发现md5('QNKCDZO')='0e830400451993494058024219903391'和md5('240610708')='0e462097431906509019562988736854'。 ... [详细]
  • 在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的步骤和方法
    本文介绍了在CentOS/RHEL 7/6,Fedora 27/26/25上安装JAVA 9的详细步骤和方法。首先需要下载最新的Java SE Development Kit 9发行版,然后按照给出的Shell命令行方式进行安装。详细的步骤和方法请参考正文内容。 ... [详细]
  • 如何利用 Myflash 解析 binlog ?
    本文主要介绍了对Myflash的测试,从准备测试环境到利用Myflash解析binl ... [详细]
  • ZABBIX 3.0 配置监控NGINX性能【OK】
    1.在agent端查看配置:nginx-V查看编辑时是否加入状态监控模块:--with-http_stub_status_module--with-http_gzip_stat ... [详细]
  • SmartRefreshLayout自定义头部刷新和底部加载
    1.添加依赖implementation‘com.scwang.smartrefresh:SmartRefreshLayout:1.0.3’implementation‘com.s ... [详细]
author-avatar
dxj20101118
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有