使用Guzzle(版本3),我想在" raw"中指定POST请求的正文。模式。我现在正在尝试这个:
$guzzleRequest = $client->createRequest(
'POST',
$uri,
null,
'un=one&deux=two'
);
但它有点不起作用。如果我转储$guzzleRequest
我可以看到postFields->data
为空。之后使用$guzzleRequest->setBody()
并没有帮助。
但是,如果我将主体指定为['un'=>'one', 'deux'=>'two']
,它将按预期工作。
如何将请求正文指定为'un=one&deux=two'
?
答案 0 :(得分:0)
首先,我强烈建议您升级到Guzzle 6,因为Guzzle 3已被弃用且EOL。
自从我使用Guzzle 3以来已经很长时间了,但我相信你想要以下内容:
$request = $client->post(
$uri,
$header = [],
$params = [
'un' => 'one',
'deux' => 'two',
]);
$response = $request->send();
Guzzle会自动设置Content-Type标题。
Post Request Documentation提供了更多信息。
回应你的评论:
$request = $client->post(
$uri,
$headers = ['Content-Type' => 'application/x-www-form-urlencoded'],
EntityBody::fromString($urlencodedstring)
)