【问题标题】:curl posting with header application/x-www-form-urlencoded带有标题 application/x-www-form-urlencoded 的 curl 发布
【发布时间】:2013-09-25 15:21:07
【问题描述】:
$post_data="dispnumber=567567567&extension=6";
$url="http://xxxxxxxx.xxx/xx/xx";

我需要使用带有标题 application/x-www-form-urlencoded 的 cURL php 发布此 $post_data 我是 curl 的新手,任何人都可以帮助解决这个问题。

【问题讨论】:

    标签: php api curl php-5.3


    【解决方案1】:
    <?php
    //
    // A very simple PHP example that sends a HTTP POST to a remote site
    //
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL,"http://xxxxxxxx.xxx/xx/xx");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS,
                "dispnumber=567567567&extension=6");
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    
    
    // receive server response ...
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    
    $server_output = curl_exec ($ch);
    
    curl_close ($ch);
    
    // further processing ....
    if ($server_output == "OK") { ... } else { ... }
    
    ?>
    

    【讨论】:

    • 我需要用这个头文件 application/x-www-form-urlencoded 发布
    • 添加这个 curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));
    • 我非常同意 http_build_query 应该用于从 application/x-www-form-urlencoded 内的数组中组合 CURLOPT_POSTFIELDS 值。
    • @user3338098 经过数小时的不成功测试,您的评论救了我。
    • http_build_query 需要 application/x-www-form-urlencoded。否则将找不到您的数据。通过您的评论解决了错误感谢@user3338098 ex:curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($arr));
    【解决方案2】:
     $curl = curl_init();
     curl_setopt_array($curl, array(
                CURLOPT_URL => "http://example.com",
                CURLOPT_RETURNTRANSFER => true,
                CURLOPT_ENCODING => "",
                CURLOPT_MAXREDIRS => 10,
                CURLOPT_TIMEOUT => 30,
                CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
                CURLOPT_CUSTOMREQUEST => "POST",
                CURLOPT_POSTFIELDS => "value1=111&value2=222",
                CURLOPT_HTTPHEADER => array(
                    "cache-control: no-cache",
                    "content-type: application/x-www-form-urlencoded"
                ),
            ));
     $response = curl_exec($curl);
     $err = curl_error($curl);
    
     curl_close($curl);
    
     if (!$err)
     {
          var_dump($response);
     }
    

    【讨论】:

      【解决方案3】:

      尝试类似:

      $post_data="dispnumber=567567567&extension=6";
      $url="http://xxxxxxxx.xxx/xx/xx";
      
      $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, $url);
      curl_setopt($ch, CURLOPT_POST, 1);
      curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded'));   
      curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
      curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
      $result = curl_exec($ch);
      
      echo $result;
      

      【讨论】:

        猜你喜欢
        • 2019-06-14
        • 1970-01-01
        • 2019-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-09-11
        • 2019-07-28
        相关资源
        最近更新 更多