【问题标题】:Guzzle issue missing-input-secret & missing-input-responseGuzzle 问题缺少输入秘密和缺少输入响应
【发布时间】:2019-12-13 16:38:12
【问题描述】:

我正在使用 Guzzle 6.5.0 和 Laravel 6.7.0 通过 Guzzle 验证 Google reCaptcha 时,似乎请求正文/form_params 不包含在 POST 参数中。下面是 PHPUnit 8.5.0 的输出...

object(GuzzleHttp\Psr7\Request)#1179 (7) {
 ["method":"GuzzleHttp\Psr7\Request":private]=>
  string(4) "POST"
  ["requestTarget":"GuzzleHttp\Psr7\Request":private]=>
  NULL
  ["uri":"GuzzleHttp\Psr7\Request":private]=>
  object(GuzzleHttp\Psr7\Uri)#1180 (7) {
    ["scheme":"GuzzleHttp\Psr7\Uri":private]=>
    string(5) "https"
    ["userInfo":"GuzzleHttp\Psr7\Uri":private]=>
    string(0) ""
    ["host":"GuzzleHttp\Psr7\Uri":private]=>
    string(14) "www.google.com"
    ["port":"GuzzleHttp\Psr7\Uri":private]=>
    NULL
    ["path":"GuzzleHttp\Psr7\Uri":private]=>
    string(25) "/recaptcha/api/siteverify"
    ["query":"GuzzleHttp\Psr7\Uri":private]=>
    string(0) ""
    ["fragment":"GuzzleHttp\Psr7\Uri":private]=>
    string(0) ""
  }
  ["headers":"GuzzleHttp\Psr7\Request":private]=>
  array(3) {
    ["Host"]=>
    array(1) {
      [0]=>
      string(14) "www.google.com"
    }
    ["headers"]=>
    array(1) {
      ["Content-Type"]=>
      string(33) "application/x-www-form-urlencoded"
    }
    ["form_params"]=>
    array(2) {
      ["secret"]=>
      string(40) "6LeIxAcTAAAAAGG-vFI1TnRWxMZNFuojJ4WifJWe"
      ["response"]=>
      string(3) "123"
    }
  }
  ["headerNames":"GuzzleHttp\Psr7\Request":private]=>
  array(3) {
    ["headers"]=>
    string(7) "headers"
    ["form_params"]=>
    string(11) "form_params"
    ["host"]=>
    string(4) "Host"
  }
  ["protocol":"GuzzleHttp\Psr7\Request":private]=>
  string(3) "1.1"
  ["stream":"GuzzleHttp\Psr7\Request":private]=>
  object(GuzzleHttp\Psr7\Stream)#1182 (7) {
    ["stream":"GuzzleHttp\Psr7\Stream":private]=>
    resource(609) of type (stream)
    ["size":"GuzzleHttp\Psr7\Stream":private]=>
    int(0)
    ["seekable":"GuzzleHttp\Psr7\Stream":private]=>
    bool(true)
    ["readable":"GuzzleHttp\Psr7\Stream":private]=>
    bool(true)
    ["writable":"GuzzleHttp\Psr7\Stream":private]=>
    bool(true)
    ["uri":"GuzzleHttp\Psr7\Stream":private]=>
    string(10) "php://temp"
    ["customMetadata":"GuzzleHttp\Psr7\Stream":private]=>
    array(0) {
   }
 }

Content-Type 标头是手动设置的。在 Laravel 中,我可以访问密钥和 URL,所以这不是问题。特别是因为请求被发送到正确的 URL。任何帮助将不胜感激。

【问题讨论】:

    标签: php curl guzzle laravel-6


    【解决方案1】:

    这里解释了问题/为什么它不起作用:

    我将客户端与请求选项混淆了:

    https://github.com/guzzle/psr7/issues/179

    希望这对其他人有帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-07
      • 1970-01-01
      • 2022-08-22
      • 1970-01-01
      • 2022-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多