热门标签 | 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,结果如下
在这里插入图片描述


推荐阅读
  • 在前一篇文章中,我们介绍了如何使用Requests库发送GET请求。本文将深入探讨如何通过Requests库发送POST请求,包括参数格式、请求封装等关键技巧,并通过“历史上的今天”API实例进行详细说明。 ... [详细]
  • 在对WordPress Duplicator插件0.4.4版本的安全评估中,发现其存在跨站脚本(XSS)攻击漏洞。此漏洞可能被利用进行恶意操作,建议用户及时更新至最新版本以确保系统安全。测试方法仅限于安全研究和教学目的,使用时需自行承担风险。漏洞编号:HTB23162。 ... [详细]
  • 深入浅出解析HTTP协议的核心功能与应用
    前言——协议是指预先设定的通信规则,确保双方能够按照既定标准进行有效沟通,从而实现准确的信息交换。例如,驯兽师通过拍手使动物坐下,这实际上是一种预设的协议。本文将详细探讨HTTP协议的核心功能及其广泛应用,解析其在现代网络通信中的重要作用。 ... [详细]
  • Cookie是一种小型数据文件,由Web服务器生成并存储在用户的浏览器中。当用户再次访问同一服务器时,这些数据可以被重新读取,为用户提供个性化的体验。Cookie在软件测试中具有重要作用,能够帮助测试人员验证会话管理、用户偏好设置等功能的正确性和安全性。通过深入解析Cookie的工作原理及其在不同场景下的应用,本文旨在为软件测试人员提供全面的技术指导。 ... [详细]
  • 本文介绍如何在 Android 中自定义加载对话框 CustomProgressDialog,包括自定义 View 类和 XML 布局文件的详细步骤。 ... [详细]
  • 本文介绍了如何利用HTTP隧道技术在受限网络环境中绕过IDS和防火墙等安全设备,实现RDP端口的暴力破解攻击。文章详细描述了部署过程、攻击实施及流量分析,旨在提升网络安全意识。 ... [详细]
  • 在JavaWeb开发中,文件上传是一个常见的需求。无论是通过表单还是其他方式上传文件,都必须使用POST请求。前端部分通常采用HTML表单来实现文件选择和提交功能。后端则利用Apache Commons FileUpload库来处理上传的文件,该库提供了强大的文件解析和存储能力,能够高效地处理各种文件类型。此外,为了提高系统的安全性和稳定性,还需要对上传文件的大小、格式等进行严格的校验和限制。 ... [详细]
  • 在PHP中如何正确调用JavaScript变量及定义PHP变量的方法详解 ... [详细]
  • 技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统
    技术分享:使用 Flask、AngularJS 和 Jinja2 构建高效前后端交互系统 ... [详细]
  • 该大学网站采用PHP和MySQL技术,在校内可免费访问某些外部收费资料数据库。为了方便学生校外访问,建议通过学校账号登录实现免费访问。具体方案可包括利用学校服务器作为代理,结合身份验证机制,确保合法用户在校外也能享受免费资源。 ... [详细]
  • 本文介绍了如何利用Struts1框架构建一个简易的四则运算计算器。通过采用DispatchAction来处理不同类型的计算请求,并使用动态Form来优化开发流程,确保代码的简洁性和可维护性。同时,系统提供了用户友好的错误提示,以增强用户体验。 ... [详细]
  • 利用爬虫技术抓取数据,结合Fiddler与Postman在Chrome中的应用优化提交流程
    本文探讨了如何利用爬虫技术抓取目标网站的数据,并结合Fiddler和Postman工具在Chrome浏览器中的应用,优化数据提交流程。通过详细的抓包分析和模拟提交,有效提升了数据抓取的效率和准确性。此外,文章还介绍了如何使用这些工具进行调试和优化,为开发者提供了实用的操作指南。 ... [详细]
  • 在PHP中实现腾讯云接口签名,以完成人脸核身功能的对接与签名配置时,需要注意将文档中的POST请求改为GET请求。具体步骤包括:使用你的`secretKey`生成签名字符串`$srcStr`,格式为`GET faceid.tencentcloudapi.com?`,确保参数正确拼接,避免因请求方法错误导致的签名问题。此外,还需关注API的其他参数要求,确保请求的完整性和安全性。 ... [详细]
  • 在进行前端JavaScript国际化(i18n)的过程中,为了从cookie中获取语言信息并动态加载相应资源,我决定将语言检测逻辑和i18n初始化代码直接嵌入到index页面中,使用了Velocity模板引擎的语法。这种方法不仅简化了代码结构,还提高了语言切换的灵活性和响应速度。 ... [详细]
  • HTML5 Web存储技术是许多开发者青睐本地应用程序的重要原因之一,因为它能够实现在客户端本地存储数据。HTML5通过引入Web Storage API,使得Web应用程序能够在浏览器中高效地存储数据,从而提升了应用的性能和用户体验。相较于传统的Cookie机制,Web Storage不仅提供了更大的存储容量,还简化了数据管理和访问的方式。本文将从基础概念、关键技术到实际应用,全面解析HTML5 Web存储技术,帮助读者深入了解其工作原理和应用场景。 ... [详细]
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社区 版权所有