使用 Guzzle 删除带有参数的请求
DELETE request with parameters using Guzzle
我必须在 CodeIgnitor 平台中执行带有参数的 DELETE 请求。首先,我尝试使用 cURL,但我切换到 Guzzle。
控制台中的请求示例是:
curl -X DELETE -d '{"username":"test"}' http://example.net/resource/id
但是在 Guzzle 的文档中,他们像 GET 一样使用参数,比如 DELETE http://example.net/resource/id?username=test
,我不想那样做。
我试过:
$client = new GuzzleHttp\Client();
$client->request('DELETE', $url, $data);
但请求只是调用 DELETE http://example.com/resource/id
,没有任何参数。
如果我正确解释了你的 curl 请求,你正试图发送 json 数据作为删除请求的正文。
// turn on debugging mode. This will force guzzle to dump the request and response.
$client = new GuzzleHttp\Client(['debug' => true,]);
// this option will also set the 'Content-Type' header.
$response = $client->delete($uri, [
'json' => $data,
]);
在回答这个问题后迟到了。
首选解决方案,避免调试模式是将 'query' 中的参数传递为:
$response = $client->request('DELETE', $uri, ['query' => $datas]);
$datas是一个数组
Guzzle V6
$response = json_decode($this->client->delete($uri,$params)->getStatusCode());
echo $response;
这也会将响应状态设为 204 或 404
我必须在 CodeIgnitor 平台中执行带有参数的 DELETE 请求。首先,我尝试使用 cURL,但我切换到 Guzzle。
控制台中的请求示例是:
curl -X DELETE -d '{"username":"test"}' http://example.net/resource/id
但是在 Guzzle 的文档中,他们像 GET 一样使用参数,比如 DELETE http://example.net/resource/id?username=test
,我不想那样做。
我试过:
$client = new GuzzleHttp\Client();
$client->request('DELETE', $url, $data);
但请求只是调用 DELETE http://example.com/resource/id
,没有任何参数。
如果我正确解释了你的 curl 请求,你正试图发送 json 数据作为删除请求的正文。
// turn on debugging mode. This will force guzzle to dump the request and response.
$client = new GuzzleHttp\Client(['debug' => true,]);
// this option will also set the 'Content-Type' header.
$response = $client->delete($uri, [
'json' => $data,
]);
在回答这个问题后迟到了。 首选解决方案,避免调试模式是将 'query' 中的参数传递为:
$response = $client->request('DELETE', $uri, ['query' => $datas]);
$datas是一个数组 Guzzle V6
$response = json_decode($this->client->delete($uri,$params)->getStatusCode());
echo $response;
这也会将响应状态设为 204 或 404