使用 HTTP 基本身份验证从 PHP 发出 FORM POST 请求
我希望这是一件相对简单的事情,我的谷歌技能这次让我失败了。 我有一个受 BASIC 身份验证保护的资源,我想让 PHP 对其执行 POST HTTP 请求。
我尝试过将身份验证:基本(加密的 u/p 数据)注入到标头中,但似乎不起作用 - 所以我想知道,我的意思是,Greyskull 的力量可以吗? StackOverflow 提供任何指导。
$req .= "&cmd=_initiate_query";
$header = "POST /someendpoint HTTP/1.1\r\n".
"Host:example.com\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"User-Agent: PHP-Code\r\n".
"Content-Length: " . strlen($req) . "\r\n".
"Connection: close\r\n\r\n";
$fp = fsockopen ('ssl://example.com', 443, $errno, $errstr, 30);
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$result .= fgets ($fp, 128);
}
fclose ($fp);
}
I hope this is a relatively straight forward thing to do, and that my google skills have simply failed me on this occasion. I have a BASIC authentication protected resource which I want to have PHP perform a POST HTTP request against.
I have tried injecting Authentication: Basic (encrypted u/p data) into the headers which didn't appear to work - so I wonder, can the powers of Greyskull i mean StackOverflow provide any guidance.
$req .= "&cmd=_initiate_query";
$header = "POST /someendpoint HTTP/1.1\r\n".
"Host:example.com\n".
"Content-Type: application/x-www-form-urlencoded\r\n".
"User-Agent: PHP-Code\r\n".
"Content-Length: " . strlen($req) . "\r\n".
"Connection: close\r\n\r\n";
$fp = fsockopen ('ssl://example.com', 443, $errno, $errstr, 30);
if (!$fp) {
// HTTP ERROR
} else {
fputs ($fp, $header . $req);
while (!feof($fp)) {
$result .= fgets ($fp, 128);
}
fclose ($fp);
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
使用:
应该可以工作 - 您确定它是基本身份验证系统吗? 可能值得使用 CharlesProxy 之类的内容查看原始标头数据,以确保它是身份验证(并且您将然后也可以复制授权字符串!)。
Using:
Should work - are you sure it is a Basic authentication system? It may be worth watching the raw header data using something like CharlesProxy to ensure it is an authentication (and you'll be then able to copy the authorization string as well!).
这是我用来执行 POST 请求的函数。 希望它可以实现您想要的功能:
这是我使用它将 POST 变量转发到 API 的示例
Here's a function I use to perform POST requests. Hopefully it can do what you want:
And here's an example of me using it to forward on the POST variables to an API