邮递员请求有效,手动执行则无效。没有错误,只是不起作用

Posted

技术标签:

【中文标题】邮递员请求有效,手动执行则无效。没有错误,只是不起作用【英文标题】:Postman Request works, doing it manually does not. No error, just doesnt work 【发布时间】:2019-08-14 09:36:00 【问题描述】:

当我使用 Postman 向 pushpad 的 API (https://pushpad.xyz/docs/rest_api) 发出 POST 请求时,它会按预期工作,并且我会在桌面上收到推送通知。 但是,当我手动执行此操作时,它只会显示一些损坏的 html 代码,这似乎是 Pushpad 的仪表板。 我没有收到任何错误,我得到一个状态码 200 说好的。

我已经尝试了以下方法:

$client = new Client([
            'headers' => [ 'Content-Type' => 'application/json' ],
            ['Authorization' => 'Token token="for the sake of privacy removed in this question"'],
            ['Accept' => 'application/json'],
        ]);

        $response = $client->post('https://pushpad.xyz/api/v1/projects/1234/notifications', [
                'json' => [
                    ['body' => 'testbody' , 'title' => 'testtitle']
                ]
            ]);
        echo '<pre>' . var_export($response->getStatusCode(), true) . '</pre>';
        echo '<pre>' . var_export($response->getBody()->getContents(), true) . '</pre>';
        dd($response->getBody()->getContents());

我的状态码是 200 对于内容或正文,我只得到一个简单的' 所以问题是,为什么它可以在 Postman 中工作而不是手动工作。 (使用 Laravel 5.5,Guzzle) 有关我在邮递员中所做的事情以及我的手动代码给我的结果的更多详细信息,请参阅图像。 (参数为空) 非常感谢! image

【问题讨论】:

您是否以正确的方式获得响应? ***.com/questions/30549226/… 如果正确,它应该像邮递员一样发送推送通知,但没有任何反应。而且我还意识到,如果我重新加载页面,我会得到类似的东西,但只是一秒钟,然后图像中的内容会覆盖页面。 在尝试了一些之后,我得到了与 img 中完全相同的东西,即推板的整个仪表板。作为一个字符串,作为一切。 【参考方案1】:

查看标题的大括号。

new Client([
  'headers' => [
    'Content-Type' => 'application/json',
    'Authorization' => 'Token token="for the sake of privacy removed in this question"',
    'Accept' => 'application/json',
  ],
]);

【讨论】:

非常感谢!为了将来参考,如果我现在有类似这样的“新”东西,我在哪里查找它,因为 guzzle 和 json 标头都没有返回有关语法的信息,每个人都希望您从出生就知道它是如何工作的。 @user11186057 我认为文档应该可以帮助docs.guzzlephp.org/en/stable/request-options.html#headers

以上是关于邮递员请求有效,手动执行则无效。没有错误,只是不起作用的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的 axios 发布请求中正确添加标头,发布路由在邮递员中有效,但在使用 axios 时无效

HTTP 请求在 Postman 中有效,但在 C# 代码中无效

PUT 请求 404 未找到错误邮递员? Node.js 快递

邮递员:socket挂断

浏览器没有响应,但在邮递员中得到 401

使用邮递员测试 api。但请求正在返回用户名或电子邮件无效