今天,我试图对正在监听端口8080的某个站点进行curl调用。然而,这样的调用会发送到端口80而不是8080:
$ch = curl_init();
curl_setopt($ch, CURLOPT_PORT, 8080);
curl_setopt($ch, CURLOPT_URL, 'http://somesite.tld:8080');
curl_setopt($ch, CURLOPT_POST, count($data));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$target_response = curl_exec($ch);
curl_close($ch);
字符串
我错过了什么吗?
8条答案
按热度按时间p1tboqfb1#
请注意,我以前遇到过这个问题,因为我使用的Web主机阻止了标准80和443(HTTPS)之外的出站端口。所以你可能想问他们或做一般测试。事实上,为了安全,有些主机甚至经常阻止80端口的出站。
oxosxuxt2#
简单的URL
GET
请求:(如果需要,还添加了json/headers,以便在需要时更轻松)字符串
POST
请求示例:型
对于我使用JSON MIME类型的示例,你可以使用任何你想要的,看看链接:http://en.wikipedia.org/wiki/Internet_media_type
确保在你的php上启用了
php_curl.dll
扩展,并且在目标服务器上打开了端口。希望这对你有帮助。
mftmpeh83#
首先检查您是否能够使用PHP可怕的Curl语法之外的其他语法进行连接:
else看看using(对于Linux用户)
一旦你建立了连接,你就可以开始使用PHP Curl了。
Curl,Wget或类似的都可以很容易地配置为使用GET和POST方法。这不是不可见的,但是对于使用Curl的多个复杂操作,我简单地放弃了正确配置PHP库的尝试,而只是直接使用命令行。
字符串
fnatzsnv4#
您的Web服务器配置错误。您提供的代码适用于我。
另外,你的代码可以更简单。只需将URI放入init调用中,并删除
CURLOPT_PORT
和CURLOPT_URL
行:$ch = curl_init('http://somesite.tld:8080');
个ulmd4ohb5#
也许你可以使用--local-port [-num]
设置用于连接的首选本地端口号或端口号范围。请注意,端口号本质上是一种稀缺资源,有时会忙碌,因此将此范围设置得过窄可能会导致不必要的连接设置失败。(在7.15.2中添加)
来源:http://curl.haxx.se/docs/manpage.html#--ftp-pasv
k7fdbhmy6#
使用PHP cURL向服务器上的端口8080发出请求
字符串
egmofgnx7#
尝试此选项的 curl
字符串
或使用本
型
qrjkbowd8#
字符串