【问题标题】:post request php -curl发布请求 php -curl
【发布时间】:2015-12-06 10:46:06
【问题描述】:

我写了这段代码:

 $data = array(
    'user' => '*****',
    'password' => '****',
     'terminal' => '******',
      'GoodURL' => '********',
       'Total' => *******,
    );
    $jsonData = json_encode($data);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "https://gateway20.pelecard.biz/PaymentGW/init");
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonData);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json;','Content-Length: ' . strlen($jsonData)));
        if ($call == 'pay') {
            $result = curl_exec($ch);
            $serverData = json_decode($result, true);
            echo $serverData['URL'];
        }

data 数组中的参数很好,但我总是得到result = false。 谁能告诉我我做错了什么?
谢谢

【问题讨论】:

    标签: php httprequest php-curl


    【解决方案1】:

    您应该实现错误处理,cURL 本身可以告诉您问题。 使用http://php.net/manual/en/function.curl-error.php,您可以:

    print __LINE__;
    if ($call == 'pay') {
       $err = curl_error($ch);
       print __LINE__;
       if (!empty($err)) {
         throw new Exception($err);
       }
       $result = curl_exec($ch);
       print serialize($result);
       $serverData = json_decode($result, true);
       print_r($serverDATA);
       echo $serverData['URL'];
    }
    

    然后您将能够看到失败的原因。根据代码的其他部分,您可能希望将其打印出来,将其放入日志数据库中,等等,抛出异常并不总是正确的处理方式。

    【讨论】:

    • 我尝试使用您的代码,但没有收到任何错误。这是发送请求的正确方式吗?
    • 一般来说是的,这似乎是一个合法的请求。我更新了调试版本,你能再试一次吗?
    • 仍然一无所获,我在php.net/manual/en/function.serialize.php 中看到,serialize() 无法处理资源类型。
    • 这很有趣,curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 应该阻止 curl_exec() 返回资源。因此,让我们尝试使用以下代码检查您的请求:print_r(curl_getinfo($ch)); 在代码 sn-p 的底部
    • 当我打印 curl_getinfo($ch) 时,我得到:Array ( [url] => gateway20.pelecard.biz/PaymentGW/init [content_type] => [http_code] => 0 [header_size] => 0 [request_size] => 0 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.047 [namelookup_time] => 0 [connect_time] => 0.016 [pretransfer_time] => 0 [size_upload] = > 0 [size_download] => 0 [speed_download] => 0 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => -1 [starttransfer_time] => 0 [redirect_time] => 0 [certinfo] = > 数组 ( ) [redirect_url] =>
    猜你喜欢
    • 2022-11-29
    • 2017-11-21
    • 2020-04-26
    • 2020-08-14
    • 2020-12-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-24
    相关资源
    最近更新 更多