PHP - Curl 正在添加 HTTP ://to my HTTPS URL

标签 php curl

这是我用来解决 curl 连接问题的代码:

$url = 'https://myurl.com';
$encodedurl = urlencode($url);

$token = 'my_api_key';
$postfields = 'my data';

$_h = curl_init($newurl);
curl_setopt ($_h, CURLOPT_HTTPHEADER, array('Authentication: Token=mytoken'));
curl_setopt($_h, CURLOPT_HEADER, 1);
curl_setopt($_h, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($_h, CURLOPT_POST, 1);
curl_setopt($_h, CURLOPT_URL, encodedurl);
curl_setopt($_h, CURLOPT_DNS_USE_GLOBAL_CACHE, false );
curl_setopt($_h, CURLOPT_DNS_CACHE_TIMEOUT, 2 );
curl_setopt ($_h, CURLOPT_POSTFIELDS, $postfields);

var_dump(curl_exec($_h));
var_dump(curl_getinfo($_h));
var_dump(curl_error($_h));

当我执行此操作时,我收到此作为数组的一部分:

["url"]=> string(59) "HTTP://https://myencodedurl.com/"

有人知道如何摆脱它添加到开头的 HTTP://吗?我已经在每个可能的地方尝试了 str_replace,但它似乎只在curl_exec 触发时才会发生。

这导致我的应用程序失败,因为无法访问资源...

最佳答案

Urlencoded URL 不再是 URL。它错过了协议(protocol)部分,因为 :// 进行了百分比编码(例如 https%3A%2F%2Fmyurl.com),因此curl 假设并添加 http://。但 http://https%3A%2F%2Fmyurl.com 仍然不是有效的 URL,请求失败。

关于PHP - Curl 正在添加 HTTP ://to my HTTPS URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31844865/

相关文章:

php - 当我的抽象类实现接口(interface)时,我应该创建抽象方法吗?

PHP 关联数组意外行为 - 为什么?

php - 随机样式标 checkout 现在简单的 php 模板网站中?

php - 在 curl php 中获取最后一个重定向的 url

bash - 如何为 curl 命令对数据进行 urlencode?

linux - 如何从curl响应中获取某些JSON值

javascript - 如何使用javascript生成codeigniter的form_input

PHP 将命令 "mailq"的输出获取到数组

ios - 将 cURL 命令行转换为 Swift cURL 不起作用

sockets - 使用 curllib 向服务器发送数据