对 HTTPS URL 的 HTTP POST 请求出现问题

发布于 2024-08-23 16:53:38 字数 380 浏览 3 评论 0原文

我正在使用 CakePHP“HttpSocket”类将信息发布到 Paypal 支付服务器。当目标 URL 为 http://www.something.com 时,我的代码工作正常,我可以解析如我所愿地回应。

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

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

出现这个问题的原因是什么?

I am using CakePHP "HttpSocket" class to post information to a Paypal payments server. My code is working fine when the target URL is http://www.something.com, I can parse the response as I would like.

However, when I am trying to post data to PayPals payment API URL (on HTTPS) I get no response whatsoever.

I have tried the same code on other HTTPS URLs, again no response.

What is the reason for this problem?

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

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

发布评论

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

评论(2

静谧幽蓝 2024-08-30 16:53:38

我和你有同样的问题...我似乎无法从 Paypal API 获得任何响应。

但我发现我刚刚做错了事。我实际上只是在 https://www.sandbox.paypal.com 上发帖,而事实上它应该是 https://www.sandbox.paypal.com/cgi-bin/webscr< /a>.

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

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

希望其他使用 CakePHP 的人能够从这个中受益。我花了好几个小时才意识到这一点。

i had the same problem as you... i seem not able to get any response from the Paypal API.

But I found out I just did something wrong. I was actually just doing a POST to https://www.sandbox.paypal.com, when in fact it should be https://www.sandbox.paypal.com/cgi-bin/webscr.

I realized this when I checked the $HttpSocket->response attribute of CakePHP, and I found out I've been getting 301 errors. Then I realized--it should not be on the base URL...

I then re-read the IPN Guide, and upon reviewing the sample codes there... voila! I realized my mistake.

Hope other people who uses CakePHP can benefit from this one. Took me long hours before I realized this one.

梦醒灬来后我 2024-08-30 16:53:38

我意识到这已经有 2 年多了,但我最近遇到了这个问题,以下是我解决它的方法:

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

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

您还可以在第三个中一起传递端口和主机param,或者使用 request() 方法代替。

希望这对某人有帮助!

I realize this is over 2 years old, but I recently came across this issue and here's how I solved it:

You need to specify the port 443 along with the URL like so:

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

You can also pass the port and the host together in the third param, or use the request() method instead.

Hope this helps someone!

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