我在Google Checkout网关处理程序中使用以下代码,但是当我测试它时,它会显示以下警告:
警告:file_get_contents(https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/XXXXXXXXXXX)[function.file-get-contents]:无法打开流:HTTP请求失败!第116行/sample.php中需要HTTP / 1.0 411长度
我的第116行如下所示:
//some more code//
$ctx = stream_context_create($params);
echo file_get_contents($_googleUrl, false, $ctx);
exit;
有人可以帮助我。
答案 0 :(得分:0)
来自w3.org
411长度
服务器拒绝接受没有定义的请求 内容长度。如果添加有效请求,客户端可以重复该请求 Content-Length头字段,包含实体主体的长度 在请求消息中。
这可能意味着您要么未在请求中发送或发送错误的Content-Length
标头。在不知道$params
数组的内容的情况下,很难对其进行调试。因此,如果要发送错误的标题并让PHP自动处理(假设PHP会执行此操作),或者如果您当前没有发送它,则需要删除Content-Length
标头,发送正确的标头。正如其他人所建议的那样,cURL可能是一个更可行的选择。
此外,进行更多研究表明,当您使用POST时,某些服务器(mis)会以这种方式运行,但不提供任何POST变量。因此,如果是这种情况,您可以通过两种方式之一解决此问题。