精华内容
下载资源
问答
  • 当其他信息需要发送到请求主体内的服务器时,我们使用此方法。通常,当我们提交POST请求时,我们希望服务器上进行一些更改,例如更新,删除或插入。使用POST请求的最佳示例之一是登录页面。您会将您的个人信息(例如...

    Postman POST请求

    POST和GET一样是一种HTTP方法。当其他信息需要发送到请求主体内的服务器时,我们使用此方法。通常,当我们提交POST请求时,我们希望服务器上进行一些更改,例如更新,删除或插入。

    使用POST请求的最佳示例之一是登录页面。您会将您的个人信息(例如密码)发送到服务器。服务器创建一个具有相同信息的新帐户,并且该帐户将信息永久添加到服务器上。

    POST请求是一种基本方法,该方法通常在用户需要时使用将一些敏感数据发送到服务器,例如发送表单或一些机密数据。

    POST请求的重要点:

    POST请求将不使用cookie。

    POST请求不会保留在浏览器的历史记录中。

    我们无法为POST请求添加书签。

    POST请求中的数据长度没有限制。

    Postman中,REST API的每个端点都与其

    HTTP动词相关联。当端点声明应使用POST http动词来调用它时,则要调用该端点,仅需要POST HTTP请求。

    我们首先检查一下POST端点的GET请求。

    POST端点上的GET请求

    这里,我们有一个

    API :

    用于注册新客户的href="https:>

    Postman端点栏中输入URL ,然后按发送。然后从下拉列表中选择GET方法。

    faf84fbea74c3c827ad8b933ff10274e.png

    请参阅以下响应:

    85da59449d33222874e02111c01d3f8a.png

    请参阅HTTP状态代码,您将收到" 405不允许使用方法"错误代码。这意味着我们要求使用错误方法的端点。并且在Pretty标签中,您还可以看到错误错误。

    863abfcd623cb23015b408d4bcfbcea6.png

    这意味着我们选择了错误的方法类型。现在,我们尝试更改方法的类型,看看是否能获得正确的响应。

    不包含主体的发布请求

    首先,从GET POST,然后单击Send按钮。

    b01d9fd9d554a583e66fec82b2b4d00e.png

    现在,参见响应部分。

    c551d78027258b77187038f63d93e40c.png

    此处有400个错误请求,如上图所示,表明未发现请求和服务器参数匹配以获得响应。并且在响应正文中,"无效的帖子数据"表示输入的帖子数据无效。

    因此,我们需要在请求正文中以正确的格式添加信息。

    将请求正文添加到发布请求中-为此,请选择"正文"标签。

    25b17722532e1daa8fde02c64dec9912.png

    现在的Body选项卡中,选择raw并从下拉菜单中选择JSON作为格式类型,如下图所示。这样做是因为我们需要以服务器期望的适当格式发送请求。

    abbff5f644b5a6d96d744c2706424264.png

    在我的示例中,服务器需要一个包含新用户信息的json主体。这是一个简单的示例:

    {

    "FirstName" : "value",

    "LastName" : "value",

    "UserName" : "value",

    "Password" : "value",

    "Email" : "value"

    }

    将以上示例复制并粘贴到Postman请求正文中。只需将属性值更改为所需值,例如以下示例:

    dcba9550f6477b4a07e9fe9242442ae6.png

    最后,按发送,然后查看响应正文和响应状态。

    5835df26769bda31897f50dcd99a6737.png

    此处状态码为200 OK;这意味着服务器批准了该请求,我们收到了肯定的答复。错误"用户已经存在"表示数据库中已经存在数据。

    让我们输入其他值并检查响应状态:

    0f948ac2c07aea563551180bb97974e1.png

    按发送并检查响应:

    4bfd5ea4ef3c284f6fecc5ecbe3d3f54.png

    在这里,"操作成功完成"表示您的输入已成功创建,并且POST请求已成功完成。

    发送正文数据

    从现在开始,您知道我们每当需要添加或更新结构化数据时都需要发送带有请求的正文数据。

    选择POST请求方法,并转到"正文"选项,那里有用于发送数据的不同选项:

    440727a8e3948bb8125c5bd256d256d0.png

    none

    form-data

    x-www-form-urlencoded

    raw

    binary

    GarphQL

    form-data

    form-data发送表单数据。例如您在填写表格时输入的信息。要发送这些详细信息,请将它们写为键值对。在这里,键是条目的名称,值是您要发送的条目的值。请执行以下步骤:

    Select form-data

    88d247ea8d35b5208065cfc1c65bc44e.png

    添加键值对

    e0e3337b808488b8ece6927793916411.png

    x-www-form-urlencoded

    它的工作方式类似于表单数据。两者之间的唯一区别是,当您通过x-www-form-urlencoded发送数据时,URL已编码。编码表示将传输的数据转换为各种字符,以使未经授权的人员无法识别该数据。

    54c7ccfc20f262596a719c73e967255d.png

    Raw

    在将正文发送到POST方法时,这是一个非常有用的选项。在这里,主体数据将以比特流的形式呈现。

    在以上示例中,我们已经讨论了原始数据。因此,我们不再赘述。

    Binary

    Binary用于发送其他格式的数据。如文件,图像等。要使用此选项,请选择二进制文件,然后单击"选择文件"以浏览系统中的任何文件。

    693c75a2593e28ad5cd52eb2f1fe327e.png

    GraphQL

    通过此选项,您可以发送GraphQL查询。

    2f18b782f943e7e60f0f07a208e41dba.png

    此处,您需要在QUERY部分中输入代码,并在GRAPHQL VARIABLES部分中输入任何变量。

    展开全文
  • postman模拟post请求的四种请求

    万次阅读 2018-09-25 21:42:45
    post类型的body中可以存放任意的内容格式,浏览器可以根据请求头中指定的content-type类型对请求体进行解析。下面介绍postman如何对四种典型的请求体进行模拟。 1. form-data 即multipart/form-data,它将表单的...

    postman的几种参数格式

    post类型的body中可以存放任意的内容格式,浏览器可以根据请求头中指定的content-type类型对请求体进行解析。下面介绍postman如何对四种典型的请求体进行模拟。

    1. form-data
    即multipart/form-data,它将表单的数据组织成Key-Value形式,用分隔符boundary(boundary可任意设置)处理成一条消息。
    由于有boundary隔离,所以既可以上传文件,也可以上传参数。

    POST  HTTP/1.1
    Host: test.app.com
    Cache-Control: no-cache
    Postman-Token: 59227787-c438-361d-fbe1-75feeb78047e
    Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW
    
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="filekey"; filename=""
    Content-Type: 
    
    
    ------WebKitFormBoundary7MA4YWxkTrZu0gW
    Content-Disposition: form-data; name="textkey"
    
    tttttt
    ------WebKitFormBoundary7MA4YWxkTrZu0gW--
    

    请求体中的boundary参数指定的就是分隔体,可以看到请求内容被分为了两段,第一段对应filekey,第二段对应textkey。

    2. x-www-form-urlencoded
    即application/x-www-from-urlencoded,将表单内的数据转换为Key-Value。

    在这里插入图片描述

    POST  HTTP/1.1
    Host: test.app.com
    Content-Type: application/x-www-form-urlencoded
    Cache-Control: no-cache
    Postman-Token: e00dbaf5-15e8-3667-6fc5-48ee3cc89758
    
    key1=value1&key2=value2
    

    3. raw
    可以上传任意格式的【文本】,可以上传text、json、xml、html等

    在这里插入图片描述

    POST  HTTP/1.1
    Host: test.app.com
    Content-Type: application/json
    Cache-Control: no-cache
    Postman-Token: 05a064d2-fa79-10c0-caba-15ca5d1a940f
    
    {"key1":"value1","key2":"value2"}
    

    4. binary
    即Content-Type:application/octet-stream,只可以上传二进制数据,通常用来上传文件。由于没有键值,所以一次只能上传一个文件。

    在这里插入图片描述

    POST  HTTP/1.1
    Host: test.app.com
    Cache-Control: no-cache
    Postman-Token: 5ad66f08-6faa-aba0-744a-ca958b1a0fc2
    
    undefined
    

    提醒:
    multipart/form-data与x-www-form-urlencoded区别:
      html中的form 表单有两种:application/x-www-form-urlencoded和multipart/form-data。application/x-www-form-urlencoded是默认的MIME内容编码类型,它在传输比较大的二进制或者文本数据时效率极低。

    MIME:
    简单说,MIME类型就是设定某种扩展名的文件用一种应用程序来打开的方式类型。服务器会将它们发送的多媒体数据的类型告诉浏览器,而通知手段就是说明该多媒体数据的MIME类型,服务器将 MIME标志符放入传送的数据中来告诉浏览器使用哪种插件读取相关文件。

    multipart/form-data:既可以上传文件等二进制数据,也可以上传表单键值对,只是最后会转化为一条信息。当设置multipart/form-data,http会忽略 contentType 属性。

    x-www-form-urlencoded:只能上传键值对,不能用于文件上传。不同的field是用&区分开的。这两个类均实现了HttpEntity接口,使用如下:

    public static String testUpload(String url) {
            String result = null;
            CloseableHttpClient httpclient = HttpClients.createDefault();
            HttpPost httppost = new HttpPost(url);
            try {
                FileBody bin = new FileBody(new File("F:\\image\\sendpix0.jpg"));
                StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN);
                HttpEntity reqEntity = MultipartEntityBuilder.create().addPart("bin", bin).addPart("comment", comment)
                        .build();
                httppost.setEntity(reqEntity);
                System.out.println("executing request " + httppost.getRequestLine());
                CloseableHttpResponse response = httpclient.execute(httppost);
                try {
                    int statusCode = response.getStatusLine().getStatusCode();
                    if (statusCode == HttpStatus.SC_OK) {
                        result = EntityUtils.toString(response.getEntity(), "UTF-8");
                    }
                } finally {
                    response.close();
                    httpclient.close();
                }
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    
        public static String testParam(String url) {
            String result = null;
            CloseableHttpClient httpclient = HttpClients.createDefault();
            httpclient = HttpsHelper.newHttpsCloseableClient();
            HttpPost httpPost = new HttpPost(url);
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("key1", "value1"));
            params.add(new BasicNameValuePair("key2", "value2"));
            try {
                httpPost.setEntity(new UrlEncodedFormEntity(params));
                httpPost.setConfig(requestConfig);
                CloseableHttpResponse httpResp = httpclient.execute(httpPost);
                try {
                    int statusCode = httpResp.getStatusLine().getStatusCode();
                    if (statusCode == HttpStatus.SC_OK) {
                        result = EntityUtils.toString(httpResp.getEntity(), "UTF-8");
                    }
                } finally {
                    httpResp.close();
                    httpclient.close();
                }
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            } finally {
                try {
                    httpclient.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return result;
        }
    
    展开全文
  • Postman和soapui使用文档

    千次阅读 2018-06-06 13:45:02
    一、Postmanpost请求为例,如下图所示:二、Soapui以下为soapui作为回传服务器使用过程,以百世为例1、安装好后,右键选择new rest project,如图所示2、输入回传地址,点击ok3、在所建服务(rest project3为所建服务...

    一、Postman

    post请求为例,如下图所示:


    二、Soapui

    以下为soapui作为回传服务器使用过程,以百世为例

    1、安装好后,右键选择new rest project,如图所示

    2、输入回传地址,点击ok

    3、在所建服务(rest project3为所建服务)上右键,选择new rest mockservice,如图所示

    4、新建服务上右键,选择add new mock action,如图所示

    5、method选择post,resource path输入对应回传地址,点击ok,如图所示

    6、在新建接口上右键,选择new mockresponse,如图所示


     7、输入接口回传结果,点击确定,如图所示

    8、选择json格式,输入回传报文,保存,如图所示

    9、双击test,点击onrequestscript,输入log.info(mockRequest.getRequestContent());点击开始按键,在script log中观察回传信息

     

     

     

     

     

     

     

             


    展开全文
  • 可以看到我们postman确实是post请求,message却报错不支持get请求,说明服务器实际上收到的是一个get请求。 产生原因 如果我们访问的是线上的接口,线上的nginx一般都会对http访问做一个302重定向,跳转为https访问...

    场景复现

    在这里插入图片描述
    可以看到我们postman发出的确实是post请求,message却报错这个接口不支持get请求,说明服务器实际上收到的是一个get请求。

    产生原因分析

    如果我们访问的是线上的接口,线上的nginx一般都会对http访问做一个302重定向,跳转为https访问。
    如果我们正常访问一个页面,它会把http跳转为https,之后由https访问的接口就都是https的了。但如果我们用postman直接访问接口,nginx会响应一个302状态码,并且把重定向的地址存放在响应头Location中。我们的客户端(一般为浏览器,此处为postman)收到302状态码后就会去找Location这个响应头,完成跳转操作。

    产生原因验证

    通过跳板机查看了测试环境nginx的配置:

    location / {
                rewrite ^(.*) https://$server_name$1 permanent;
            }
    

    rewrite模块最后的flag是permanent,是301重定向,并不是我们推测的302。不过301处理请求的方式是与302相同的,会把post请求转为get请求。

    解决方法

    如果我们不指定前缀,则默认是http://,因此解决方法是在我们的请求url最前面加上https:// 即可
    在这里插入图片描述

    知识拓展

    • 大部分浏览器会将301、302的post转为get
    • 303的规范强制规定将post请求转为get请求
    • 307规范要求继续向Location地址中post内容
    • 308同样禁止浏览器将post请求转为get请求
    • 301与308对应,302与307对应,307、308分别是前者的禁止转get版本。
      也就是说nginx如果使用的是307、308跳转,也就不会出现这样的问题了。当然如果我们没有相应的业务场景,没有必要为了解决postman的问题而使用307、308状态码。
    展开全文
  • 今天遇到postman get请求可以,改成post请求报404。 解决办法是要把参数写到body里面,截图如下 以前都遇到过这种情况,结果用到了又忘了,好记性不如赖笔头,还是记下来吧。...
  • Postman中关于post的几种请求

    千次阅读 2019-07-24 09:46:54
    如下图所示,接口测试工具Postman中关于post的几种请求是什么意思呢? 前言: 对于get请求来说没有请求主体entity-body。对于post请求而言,将数据放在body中进行传输,因此,url中不会暴露请求的参数。同时,也...
  • 下面小编就为大家分享一篇PostMan post请求发送Json数据的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • 注意一下 http 和 https 。 有可能是因为服务器做了 http 强制跳转 https 。 postman 发出的 POST 遇到 301 之后就会变成 GET 。 请求前面加个 https://就没问题了
  • Postman发送post请求

    万次阅读 多人点赞 2018-06-01 12:38:03
    Postman发送post请求在服务器开发过程中,要经常对get,post接口进行测试,get请求,浏览器就可以完成,而post请求浏览器用起来有点麻烦,有的浏览器支持的不太好,个人用过火狐,还可以,今天介绍一下Postman发送...
  • postman发送post请求报错 { "msg": "system error", "code": "99999", "data": "Request method 'GET' not supported" } 请求
  • 如何使用postman发送带参数的Post请求

    千次阅读 2021-02-02 15:10:25
    一、如何使用postman发送带参数的POST请求: 步骤: 1)创建一个请求; 2)选择请求方式POST; 3)在url处设置请求地址; 4)在body下设置请求参数的key和value,选择参数的组织形式(form-data、x-...
  • Postman使用 Post请求上传文件

    千次阅读 2019-12-26 15:30:54
    一、选择post请求方式,输入请求地址 二、填写Headers Key:Content-Type Value:multipart/form-data 三、填写body 选择form-data 然后选择文件file
  • Postman Get Post 请求特殊字符问题

    千次阅读 2019-12-19 19:52:13
    Http请求中会将url中的特殊字符进行转义,如加号等,当使用postman发送post请求时,如果只是选择post请求方式然后添加参数,那么参数会在url中进行拼接,其中的特殊字符也会进行转义。如下图: 参数会在url中进行...
  • post请求时一般参数放在body里面,选择json格式,如下所示:
  • https://blog.csdn.net/a624193873/article/details/107739640
  • Post请求一般用来向服务器输入数据,它将提交的数据放置在HTTP包的包体中,在Postman中发送Post请求时步骤如下: 1.请求方法选择POST; 2.在request url处输入请求url; 3.请求方法选定为POST后维护Body栏数据...
  • 一、post请求说明 使用postman发送一个post请求,在上文中测试流程中提到的4个要素:URL、请求方式、请求头部信息及body数据。 body中设置的请求参数,常见的有如下三种: 1、x-www-from-urlencoded格式 2、form...
  • 那么如果你打开api的网址,在浏览器上显示不信任的站点,并且协议是https... 可能问题就出在这里。 解决方案: 关闭SSL校验。 打开 PostMan > settings > Gennal > 关闭 SSL certificates verification ......
  • 有时候,开发同学写的请求,格式不是常规的json或列表格式,这种请求在jmeter中请求时就需要做特殊设置 如:postman中的如下请求 那么在jmeter中请求时,需要在改请求下面单独加HTTP信息头管理器,里面增加 ...
  • Postman之Post请求使用方法

    万次阅读 2017-05-18 15:14:06
    一般,我们都是从开发那边获取到接口文档,拿到接口文档,选择要使用的接口测试工具,此次,我选择用postman,因为之前一直没有时间用postman,postman其实挺方便的,每次录完接口,都能...post请求,输入参数,如下图
  • postman发送post请求,报405 Method Not Allowed: 亲测有效的方案一: 检查请求header是否缺少必要信息。如果不清可以把所有的头部信息全部粘贴到header中,尝试是否可以发送成功。如果可以发送成功,则逐个删除...
  • 我们在使用postman请求时报错500 Internal Privoxy Error,具体的错误图如下: 网上我搜了一下相关的解决方法,试了一下都没啥用,后来看了一篇介绍postman的知乎文章,上面详细说明了代理服务的工作原理,【接口...
  • 遇到个问题:同一个get请求的url,postman请求https网址没有响应,但是用浏览器有响应 url是https开头的,查看错误描述里有一个SSL的选项: 然后根据描述关掉这个选项: 然后就没问题了,能正常请求及响应 ...
  • 使用postman执行post请求

    千次阅读 2018-05-02 16:00:40
    1.打开软件 2.输入要访问的接口和传递的方式,此次执行post方式3.传递数据格式为json字符串。 4.点击发送,如果传递参数的格式正确,则返回响应结果***还有很多跟postman功能相似的开发软件 例如:Advanced Rest ...
  • 就是http请求中的multipart/form-data,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时,会有content-type来说明文件类型;content-...
  • 1.在请求头中加上Accept和后台控制层一样 2.如果1还不行,那就改tomcat的编码 在tomcat的server.xml中加上——URIEncoding=”UTF-8”,如下: Connector port=&quot;8080&quot; ...
  • 遇到的问题:使用postman发送get请求,传参含有中文时,在发送请求之后,状态码为400。 解决办法:在URL带有中文时,选中URL中的中文参数,右键EncodeURIComponent,将中文按照utf-8进行编码,再次发送请求,成功...
  • postman构造post请求用于接口测试

    千次阅读 2018-12-01 18:41:03
    前端时间需要测试springmvc的项目,需要用到postman测试每个接口方法的返回数据,提交方法是post。 下面列出完成的测试步骤 1.由于接口对登录状态做了限制,所以首先需要绕过登录状态。(如果网页对登录状态没作...
  • random) # 上传图片 with requests.Session() as s: r = s.post(url, files=dict_file) # 打印请求返回的信息 print(r.text) if __name__ == '__main__': # 后台定时任务 scheduler = BlockingScheduler() # 3秒上传...

空空如也

空空如也

1 2
收藏数 39
精华内容 15
关键字:

postmanpost请求