Postman相关直达

实用篇 | 利用Flask+Postman为深度学习模型进行快速测试(超详细)_ CSDN博客

1.基础知识

1.1.postman发送请求(json和urlencoded)

1.1.1.发送 JSON 数据请求(form-data):

要求:

请求方法:POST(或其他支持请求体的方法)请求头(Headers):Content-Type 设置为 application/json

输入实例:

{ "key1": "value1",

 "key2": "value2" }

1.1.2发送 URL-encoded 数据请求:

要求:

请求方法:POST(或其他支持请求体的方法)请求头(Headers):Content-Type 设置为 application/x-www-form-urlencoded

输入实例:

key1=value1&key2=value2

1.1.3.请求示例

发送文本请求

请求头(Headers):Content-Type 设置为 text/plain"This is a sample text."

发送图像请求

请求头(Headers):Content-Type 设置为 image/png(或其他适当的图像类型)将图像二进制数据作为请求体发送

发送语音请求

请求头(Headers):Content-Type 设置为 audio/wav(或其他适当的音频类型)将语音文件的二进制数据作为请求体发送

在 Postman 中,可以通过选择合适的请求方法、设置请求头、并在 Body 中输入相应的数据来发送不同类型的请求。确保请求头中的 Content-Type 与发送的数据类型相匹配。

1.2.响应结果详解

Pretty:格式化显示,以便查看Raw:不进行任何处理,显示响应数据的原始格式Preview:预览响应体,会自动换行,不会格式化(有时候是数据,有时候是页面).预览模式的显示内容取决于接口返回的数据类型。如果返回的数据是JSON格式,且数据中包含图片的base64编码,那么预览模式将展示这张图片。同样的,如果返回的数据是HTML格式,预览模式将会渲染并展示这个HTML页面。Visualize:可视化响应体

“Pretty”,“Raw”,“Preview”对比

  "Pretty"模式是将返回的Body数据格式化后进行展示,格式化后的数据看起来更加直观,而且响应数据内容中的链接还会被高亮显示并可以点击去发送请求。默认情况下,Postman会以这种方式展示响应数据。  "Raw"模式是以纯文本的方式展示响应,它可以是多种格式,例如JSON、XML、HTML或普通文本。  "Preview"模式则提供响应结果的预览效果。

  因此,这三种模式各有其特点和用途:"Pretty"模式则侧重于数据的可视化展示,使结构更清晰;"Raw"模式更注重数据的原始形式;而"Preview"模式则提供了响应内容的预览。

2.调用API接口

 在使用postman测试成功后,如果第三方想要在自己的电脑进行测试的话,通过postman自动生成的代码(点击右侧)可直接进行接口调用,可选择python,Java,c#等语言及其他方式.

这里选择的是python语言的requests方法:

实例1:语音合成中,根据定义的输入输出方式不同,进行测试

常见的方法就是在本地运行flask api文件后,

①打开postman->选择post->输入IP地址->选择body->选择form-data->输入key和value

对应api的请求格式:

输入:text = request.form["text"]

输出:out_path = "./tts/out.wav"

return send_file(out_path,mimetype="audio/wav", as_attachment=True,download_name="out.wav")

输出的是生成的语音文件路径

②打开postman->选择post->输入IP地址->选择body->选择raw(默认json)->输入JSON格式(key和value)

对应api的请求格式:

输入:text=request.json['text']

输出:out_path = "./tts/out.wav"

output = {                          "audio": [                 {                     "@TITLE": base64.b64encode(open(out_path, 'rb').read()).decode()                                                                 }             ]         }         return jsonify(output)

输出的是生成的语音文件路径

实例2:STT

打开postman->选择post->输入IP地址->选择body->选择binary->上传文件->Send发送请求

实例3:图像生成

【Postman】postman显示返回的base64图片,实现直接预览_postman base64-CSDN博客

过程中遇到的错误及解决(PS)

【PS1】 postman在返回音频时,返回base64编码

不了解base64可参考【实用篇 | Base64详解及代码示例】

目前需要单独进行解码操作

Audio Player

Your browser does not support the audio element.

【PS2】postman在发送请求后返回415

HTTP状态码415表示"不支持的媒体类型",这通常是由于服务器无法理解或处理请求中提供的媒体类型引起的。在这种情况下,可能是因为请求头中的Content-Type与服务器预期的不匹配。

确保在Postman中的请求头中包含正确的Content-Type。对于发送JSON数据,通常使用"application/json"。你可以在Postman的请求头中手动设置或者使用Postman的"Body"选项,选择"raw"并选择"JSON (application/json)"。

Postman发送的请求不正确导致了415错误。

Q&A

【Q&A1】Server中Werkzeug和nginx的区别是什么?

Werkzeug:

Werkzeug 是一个用于构建 WSGI(Web Server Gateway Interface)应用程序的 Python 库。WSGI 定义了 Web 服务器与应用程序之间的标准接口,允许开发者使用不同的框架编写应用程序,而无需担心底层的服务器细节。

Werkzeug 通常被用作 Flask 框架的基础,它提供了一个简单而灵活的方式来构建 Web 应用程序。在开发阶段,Werkzeug 通常用于本地测试服务器,用于方便地调试和测试 Flask 应用。

Werkzeug 不是一个独立的生产级服务器,而是用于在开发环境中运行的轻量级服务器。

Nginx:

Nginx 是一个高性能的反向代理服务器和 Web 服务器。它通常用于生产环境,作为一个前端服务器,处理客户端的请求并将它们传递给后端的应用服务器。

Nginx 提供了负载均衡、反向代理、静态文件服务、SSL 终端等功能。它被广泛用于搭建高性能和可扩展的 Web 架构。

与 Werkzeug 不同,Nginx 不是用于构建应用程序的框架或库,而是专注于提供高效的服务器功能。

在一个典型的 Web 架构中,Werkzeug 通常用于本地开发和测试,而 Nginx 用于实际的生产环境部署。开发者可以使用 Werkzeug 作为调试服务器,而在生产环境中,Nginx 与应用服务器(如 Gunicorn、uWSGI 等)一起使用,以提供高性能和稳定的 Web 服务。

扩展

A1:postman对字符串进行base64编码方法和变量的使用

在发送请求前,对将要发送的文件进行预处理,也就是把生成的编码传值给请求参数。

在页面的【Pre-request Script】选项页中,增加如下代码

const text = CryptoJS.enc.Utf8.parse("将要输入的文件")

const base64_text = CryptoJS.enc.Base64.stringify(text)

具体内容为:使用CryptoJS这个库,“var”为JS语言新建变量的固定声明方式ip

新建变量card,使用CryptoJS库,对待加密的原始字符串“1652423”进行编码字符串新建变量base64,使用CryptoJS库,对编码后的字符串进行base64类型的加密requests设置一个环境变量名为:“cardNumber”,用来获取第②行base64加密后的值

(这个变量名须要与以前设置环境变量时的变量名相同)

 点击send发送请求,在下面出现预期结果。请求中字段使用Base64加密成功

相关文章

评论可见,请评论后查看内容,谢谢!!!评论后请刷新页面。