0

如何GuzzleHttp\Psr7\Uri在重定向之前修改 URI 实例,尤其是查询部分?

我试图添加一个修改请求的中间件,但是一旦我添加了一个CurlHandler响应正文总是返回一个空字符串。

$stack = new HandlerStack();
$stack->setHandler(new CurlHandler());

$client = new Client(['handler' => $stack]);

$stack->push(Middleware::mapRequest(function (RequestInterface $request) {

  // Modify request

  return $request;
}));
4

1 回答 1

0

问题是由于 HandlerStack 类型,默认情况下 CurlHandler 不处理重定向。

如何修改请求URI

$stack = HandlerStack::create();

$stack->push(Middleware::mapRequest(function (RequestInterface $request) {
  // Retrieve the URI
  $uri = $request->getUri();

  $query = // update query

  // Update the URI query
  $uri = $uri->withQuery($query);

  return $request->withUri($uri);
}));
于 2016-07-17T18:59:57.290 回答