file_get_contents和curl不起作用,tcp端口阻塞问题

发布于 2024-11-19 06:07:25 字数 416 浏览 2 评论 0原文

我正在尝试编写一个 Joomla 模块,它将解析来自 springer api 的 json 数据。我对“file_get_contents”方法和其他替代方法有问题。我的问题是:

警告:file_get_contents(http://www.example.com) [function.file-get-contents]:无法打开流:尝试对无法访问的网络进行套接字操作。在 C:\wamp\www\modules\mod_springer\mod_springer.php 第 72 行

经过一番查找,发现可能是因为我公司的防火墙的原因。有什么方法可以解决这个问题,例如更改我正在使用的端口或使用其他方法,还是我被困在这里?

注意:allow_url_fopen 已启用。我用的是wamp

I'm trying to write a Joomla module which will parse json data from springer api. I have problem with the method "file_get_contents" and other replacements. My problem is that:

Warning: file_get_contents(http://www.example.com) [function.file-get-contents]: failed to open stream: A socket operation was attempted to an unreachable network. in C:\wamp\www\modules\mod_springer\mod_springer.php on line 72

After some search, I found out that it may be because of my company's firewall. Is there any way to overcome this problem like changing port I'm using or using another method, or am I stuck here?

Note: allow_url_fopen is enabled. I'm using wamp.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

凉城 2024-11-26 06:07:25

如果您能够说服当权者允许您通过防火墙访问您想要连接的远程 API,那么您就不会陷入困境。只要您有合法的理由并且可以在狭窄的范围内(一个特定的 IP 和端口)配置防火墙访问,我不明白为什么您在获取此访问时会遇到问题。

You're not stuck if you can convince the powers-that-be to allow you access through the firewall to the remote API to which you wish to connect. As long as you have a legitimate reason and the firewall access can be provisioned in a narrow scope (one specific IP and port), I don't see why you should have a problem getting this access.

韬韬不绝 2024-11-26 06:07:25
  1. 此处下载cacert.pem文件
  2. 复制cacert.pem 文件到例如 c:/wamp/bin/php/extras/ssl 文件夹
  3. php.pni curl 中写入或取消注释。卡信息="c:/wamp/bin/php/extras/ssl/cacert.pem" 并保存
  4. 重新启动 Wamp/Xampp 服务器
  5. 完成
  1. Download cacert.pem file from here
  2. Copy cacert.pem file to for example c:/wamp/bin/php/extras/ssl folder
  3. Write or uncomment in php.pni curl.cainfo ="c:/wamp/bin/php/extras/ssl/cacert.pem" and save
  4. Restart Wamp/Xampp server
  5. DONE
弱骨蛰伏 2024-11-26 06:07:25

可能(也许)可以通过 cURL 代理处理来解决这个问题,例如:

curl_setopt($ch, CURLOPT_PROXY, "http://xxx.xxx.xxx.xxx:8080");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, "xxx:xxx"); 

这取决于一些因素,例如您拥有的权限,是否只是被阻止的端口或是否是访问控制。

It may be possible (MAYBE) to overcome the issue with cURLs proxy handling like:

curl_setopt($ch, CURLOPT_PROXY, "http://xxx.xxx.xxx.xxx:8080");
curl_setopt($ch, CURLOPT_PROXYPORT, 8080);
curl_setopt ($ch, CURLOPT_PROXYUSERPWD, "xxx:xxx"); 

This would depend on a few things like the permissions you have, if it is just a blocked port or if it is access control.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文