如何使用cUrl将数据提交为表单数据

时间:2019-04-21 13:12:11

标签: php

我必须通过PHP cUrl将数据发送到Api,然后将获得的令牌保存为响应。 在邮递员中,当我将数据作为Form-data发送时,但如果将其作为原始正文发送,则不是。现在,我尝试通过cUrl发送数据,但是当我将postman与raw-body一起使用时,得到的响应与我相同。如何将其发布为表单数据?

谢谢

我尝试了那些:

  1. 尝试:

    $body = array();
    $body['userEmail'] = $email;
    $body['userPassword'] = $password;
    $body['clientId'] = 'Kursapp';
    
    $data_string = json_encode($body);
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Accept: application/json;charset=UTF-8',
        'Content-Type: application/json;charset=UTF-8'
    ));
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    
    $response = curl_exec($curl);
    
    curl_close ($curl);
    
  2. 尝试:

    $body = array();
    $body['userEmail'] = $email;
    $body['userPassword'] = $password;
    $body['clientId'] = 'Kursapp';
    
    $data_string = http_build_query($body);
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Accept: application/json;charset=UTF-8',
        'Content-Type: application/json;charset=UTF-8'
    ));
    curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
    
    $response = curl_exec($curl);
    
    curl_close ($curl);
    
  3. 尝试

    $body = array();
    $body['userEmail'] = $email;
    $body['userPassword'] = $password;
    $body['clientId'] = 'Kursapp';
    
    $post_str ='';
    foreach ($body as $key=>$value){
        $post_str .= $key.'='.urldecode($value).'&';
    }
    $post_str = substr($post_str, 0, -1);
    
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_HTTPHEADER, array(
        'Accept: application/json;charset=UTF-8',
        'Content-Type: application/json;charset=UTF-8'
    ));
    curl_setopt($curl, CURLOPT_POSTFIELDS, $postr);
    
    $response = curl_exec($curl);
    
    curl_close ($curl);
    
  4. 尝试吃食

    $client = new Client();
    
    $response = $client->request('POST', $url, [
        'headers' => [
            'Accept' => 'application/json;charset=UTF-8',
            'Content-Type' => 'application/json;charset=UTF-8'
        ],
        'form_params' => $body
    ]);
    

0 个答案:

没有答案