使用 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