首页 > 解决方案 > 使用 PhP 的 cURL 请求删除

问题描述

我在 php 中通过 cURL 使用 api,但是当我需要执行“删除”操作时,我遇到了问题

调用 curl_exec ($ ch)返回一个空字符串。我正在通过邮递员和招摇来测试这个功能,它是正确的。我在 curl_api 中使用的所有其他操作,如“post”、“get”、“patch”都可以正常工作,但“delete”却不行。

curl_api 调用: $this->curl->curl_api(API_RESTAURANT, 'Menu/' . $this->session->usuario_id, $image, 'delete');

curl_api:

public static function curl_api($api, $url, $json, $action)
        {
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($ch, CURLOPT_MAXREDIRS, 10);
            curl_setopt($ch, CURLOPT_URL, $api . $url);
            //curl_setopt($ch, CURLOPT_USERPWD, USER . "/token:" . APIKEY);
            curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $action);
            curl_setopt($ch, CURLOPT_POSTFIELDS, $json);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type: application/json'));
            curl_setopt($ch, CURLOPT_USERAGENT, "MozillaXYZ/1.0");
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ch, CURLOPT_TIMEOUT, 40);

            $output = curl_exec($ch);

            if(empty($output)){
                die(curl_error($ch));
                curl_close($ch);
            }
            else{
                $info = curl_getinfo($ch);
                curl_close($ch);
            } 

            if (empty($info['http_code'])) {
                die();
            } 

            $return = [
                'http_code' => $info['http_code'],
                'output' => $output
            ];

            return $return;
        }


标签: phpcurl

解决方案


您尝试将字符串“DELETE”直接作为变量传递吗?

 curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

该用户遇到了同样的问题,他的解决方案的主要区别在于。

希望能帮助到你!


推荐阅读