PHP:如何使用GET发送cURL请求?

PHP:如何使用GET发送cURL请求?,php,curl,Php,Curl,我使用cURL进行API调用,下面是我的代码: $data = array( 'r' => 'create', '_object' => 'Question', '_api_key' => '........', '_user_id'

我使用cURL进行API调用,下面是我的代码:

$data = array(
            'r'                          =>  'create',
            '_object'                    =>  'Question',
            '_api_key'                   =>  '........',
            '_user_id'                   =>  $creator_id,
            '_subtype_id'                =>  $type_id,
            '_subtopic_id'               =>  $subtopic_id,
            '_title'                     =>  $title,
            '_description'               =>  $description,             
            '_encoded_xml'               =>  $main_xml
        );
     
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,"http://urlhere/v1/resources/objects");
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS,$data);

        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
        $server_output = curl_exec($ch);    
        curl_close ($ch);
        print_r($server_output);

我希望将这些参数作为
GET
请求发送,而不是
POST
,我如何才能做到这一点,请告知
CURLOPT_POSTFIELDS
用于
POST
请求的正文(有效负载)。对于
GET
请求,有效负载是URL的一部分

您只需要使用需要发送的参数(如果有的话)构造URL,并删除其他用于cURL的选项


$data = array(
            'r'                          =>  'create',
            '_object'                    =>  'Question',
            '_api_key'                   =>  '........',
            '_user_id'                   =>  $creator_id,
            '_subtype_id'                =>  $type_id,
            '_subtopic_id'               =>  $subtopic_id,
            '_title'                     =>  $title,
            '_description'               =>  $description,             
            '_encoded_xml'               =>  $main_xml
        );


        $send_data = http_build_query($data);
     
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,"http://urlhere/v1/resources/objects?" . $send_data);
        // curl_setopt($ch, CURLOPT_POST, 1);
        // curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
        
        $server_output = curl_exec($ch);    
        curl_close ($ch);
        print_r($server_output);


CURLOPT_POSTFIELDS
用于
POST
请求的主体(有效负载)。对于
GET
请求,有效负载是URL的一部分

您只需要使用需要发送的参数(如果有的话)构造URL,并删除其他用于cURL的选项


$data = array(
            'r'                          =>  'create',
            '_object'                    =>  'Question',
            '_api_key'                   =>  '........',
            '_user_id'                   =>  $creator_id,
            '_subtype_id'                =>  $type_id,
            '_subtopic_id'               =>  $subtopic_id,
            '_title'                     =>  $title,
            '_description'               =>  $description,             
            '_encoded_xml'               =>  $main_xml
        );


        $send_data = http_build_query($data);
     
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL,"http://urlhere/v1/resources/objects?" . $send_data);
        // curl_setopt($ch, CURLOPT_POST, 1);
        // curl_setopt($ch, CURLOPT_POSTFIELDS,$data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);    
        
        $server_output = curl_exec($ch);    
        curl_close ($ch);
        print_r($server_output);


这回答了你的问题吗?这是基于命令的这能回答你的问题吗?这是基于命令的。我正在向服务器发送$data数组作为get请求,所以我应该添加?iitem=itemval,就像url中的一样?啊,是的。。。添加这样的内容<代码>$send\u data=http\u build\u query($data)将其添加到您的URL中,我已更新了答案中的代码。我正在将$data数组作为get请求发送到服务器,因此我是否应该添加?iitem=itemval,如URL中的此?啊,是的。。。添加这样的内容<代码>$send\u data=http\u build\u query($data)将其添加到您的URL,我已更新了答案中的代码。