【问题标题】:Problem with HTTP POST request to HTTPS URL对 HTTPS URL 的 HTTP POST 请求出现问题
【发布时间】:2011-01-21 19:31:35
【问题描述】:

我正在使用CakePHP“HttpSocket”类将信息发布到 Paypal 支付服务器。当目标 URL 为 http://www.something.com 时,我的代码运行良好,我可以根据需要解析响应。

但是,当我尝试将数据发布到 PayPals 支付 API URL(在 HTTPS 上)时,我没有收到任何响应。

我在其他 HTTPS URL 上尝试了相同的代码,但仍然没有响应。

这个问题的原因是什么?

【问题讨论】:

  • 您是否尝试过使用 WireShark、NetMon 或 Fiddler 查看您的网络流量,看看发生了什么?
  • 你的 php.ini 中是否激活了 OpenSSL 扩展?
  • @EricLaw 据我所知,它已启用(2.2.14 OpenSSL)
  • @dhofstet 谢谢这解决了我的问题

标签: http cakephp post https


【解决方案1】:

我遇到了和你一样的问题...我似乎无法从 Paypal API 获得任何响应。

但我发现我做错了什么。我实际上只是在向https://www.sandbox.paypal.com 发送 POST,而实际上它应该是 https://www.sandbox.paypal.com/cgi-bin/webscr。

当我检查 CakePHP 的 $HttpSocket->response 属性时,我意识到了这一点,我发现我收到了 301 错误。然后我意识到——它不应该在基本 URL 上......

然后我重新阅读了 IPN 指南,并查看了那里的示例代码......瞧!我意识到了我的错误。

希望其他使用 CakePHP 的人能从中受益。我花了很长时间才意识到这一点。

【讨论】:

    【解决方案2】:

    我知道这已经超过 2 年了,但我最近遇到了这个问题,我是这样解决的:

    您需要指定端口 443 以及 URL,如下所示:

    $httpSocket = new HttpSocket();
    $httpSocket->get('https://domain:443/sample/path', array('q' => 'example'));
    

    您也可以在第三个参数中同时传递端口和主机,或者使用 request() 方法。

    希望这对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-15
      • 2023-03-28
      • 1970-01-01
      • 2018-02-20
      相关资源
      最近更新 更多