【问题标题】:php- curl isn't working for POST requestsphp-curl 不适用于 POST 请求
【发布时间】:2015-01-05 10:04:03
【问题描述】:

我想使用 curl 发送一个 POST 请求,但不知道为什么它不起作用。 HTTP 请求如下:

类型:POST 网址https://abc.com/server/386594/actions/?do=open HEADERS:授权:基本 1234abc

当我使用 curl (CLI) 发出请求时,它工作正常,但在 php 中我没有得到任何响应。我的代码是:

$headers = array("Authorization: Basic 1234abc");
$ch1 = curl_init();
curl_setopt($ch1, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch1, CURLOPT_URL, "https://abc.com/server/386594/actions/");
curl_setopt($ch1, CURLOPT_POST, 1);
curl_setopt($ch1, CUTLOPT_POSTFIELDS, "do=open");
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
$vnc = curl_exec($ch1);
echo $vnc;
echo curl_error($ch1);

我哪里错了? :)

【问题讨论】:

  • 没有回应?甚至没有错误?在 PHP 中启用 Curl?
  • @Abhinav 没有回应。没有错误。是的,curl 适用于其他帖子并获取 rrquests,因此已启用。
  • @Manish Jesani 我不认为我在使用代理
  • 试试 $headers = array("Authorization:Basic 1234abc");而不是 $headers = array("Authorization: Basic 1234abc");删除“:”后的空格

标签: php http post curl


【解决方案1】:

请把代码如下......

url不是安全的url,所以去掉HTTPS,写简单的HTTP。

$headers = array("Authorization:Basic 1234abc");
                            //remove the space
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,$host_url);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_POST,true);
                                    //remove 1 and put 'true' keyword
    curl_setopt($ch, CURLOPT_POSTFIELDS,"do=open");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_TIMEOUT, 60);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
    $curl_response = curl_exec($ch);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多