当前位置: 首页 > 知识库问答 >
问题:

PHP cURL请求主ip与cURL url不同

简成仁
2023-03-14

当通过PHP发出curl请求时,curl得到“无法连接到主机”。当我转储curl信息时,primary_ip不是请求服务器的ip。

$soapURL ="www.google.com";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $soapURL);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 60);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xml);
$header[] = "SOAPAction: ". "";
$header[] = "MIME-Version: 1.0";
$header[] = "Content-type: text/xml; charset=utf-8";
curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
$result = curl_exec($ch);
echo curl_getinfo($ch) . '<br/>';
echo curl_errno($ch) . '<br/>';
echo curl_error($ch) . '<br/>';
$info = curl_getinfo($ch);
var_dump($info);

这在我的测试服务器上运行良好,但在生产环境中不起作用。在生产服务器上,这是我得到的响应:

大堆

7.

无法连接到主机数组(23){["url"]=

primary\u ip=

当我使用测试服务器时,我得到:

大堆

0

数组(23){[“url”]=

这是应该发生的。

曾经有一些Linux环境变量设置为http_代理,它被设置为我的机器,我设置为空。从命令行进行curl调用也可以。php尝试进行的任何curl调用都会失败。

类似的问题与变通解决方案


共有1个答案

刘安志
2023-03-14

SUSE特别是SLES 11有一些代理设置,您可以像我一样在目录中或通过YAST访问。更改这些设置并启用或禁用代理将影响Linux中通过命令行进行的调用,但不影响通过PHP进行的curl调用。重启Apache也没有改变任何事情。PHP仍然为http_proxy设置了环境变量。在我通过YAST删除所有代理设置后,重新启动整个服务器(init 6),修复了代理问题。仅仅禁用代理是不够的。我必须清除在yast的代理设置。

 类似资料:
  • 问题内容: 我的应用程序服务器有一个基于Node.js的部署脚本。部署过程中的第一步是在向DNS注册之前,验证这些应用服务器是否正确侦听HTTPS。为此,我只需要向该服务器的IP地址发出HTTPS请求即可。 如果这是HTTP,则不是问题。我可以向发出HTTP 请求,这将起作用。但是,如果我发出HTTPS GET请求,则此操作将失败,因为证书用于特定的主机名,例如。 如果我是手动测试,则将IP地址临

  • 问题内容: 我正在尝试使用带有自签名证书的Node.js 0.8.8创建TLS服务器/客户端设置。 基本的服务器代码如下所示 现在,当我尝试连接到该服务器时,我使用以下代码: 如果我删除线 从客户端代码,Node.js抛出一个错误告诉我。据我了解,这是由于它是一个自签名证书,并且没有其他方信任此证书。 如果我删除 同样,错误也消失了-但等于错误,实际上意味着我的连接未加密。无论如何,使用我可以访问

  • 我有一个实现接口,在其方法中,检查传入的HTTP请求,采取一些操作,然后将请求转发到反向代理处理程序()。 只要我只检查基本请求属性(如URL或标头),就可以正常工作。 当我想检查传入POST请求的主体时,例如通过调用然后使用属性,一旦请求传递到反向代理,我就会遇到错误: 我认为这是因为查看HTTP请求的主体会导致要排空的流,这意味着代理处理程序无法再次读取该流。 我一直在玩和,但我真的没有什么进

  • 问题内容: 将请求正文与GET请求一起传递是否违反REST风格? 例如在Elasticsearch中过滤一些信息 甚至设计了一些工具来避免GET请求中的请求主体(例如邮递员) 问题答案: 从RFC: GET请求消息中的有效负载没有定义的语义。在GET请求上发送有效内容正文可能会导致某些现有实现拒绝该请求。 换句话说,这不是禁止的,但是它是未定义的行为,应避免使用。HTTP客户端,服务器和代理可以随

  • 问题内容: 我有代码: 当我在带有Node 0.9.4的桌面上运行它时,我在控制台中得到了这个: 当我在带有节点0.6.12的Netbook上运行它时,它们都可以正常运行而没有错误(302响应-我认为是正确的)。 有问题的Node.js主机名/ IP与证书的altnames不匹配 ,Rojuinex写道:“是的,浏览器问题…对不起”。“浏览器问题”是什么意思? UPD。在节点v0.8上回滚后,此问

  • 问题内容: 不熟悉Unix网络,添加虚拟接口等,现在尝试学习。我们正在尝试对我们的应用程序进行docker化。 我的要求是:将ip分配给可从外部应用程序/浏览器访问的docker容器。 容器ip应该基本上可以从同一网络中的其他计算机ping通。我不想使用端口转发。 我想访问docker容器,就像我们使用ip地址访问VM。没有端口映射,-p标志。如果我在容器中运行任何服务器,例如Apache或Tom