0

我试图在要求用户名和密码的安全 URL 上触发 HTTP GET 请求。当我从浏览器中使用它时这很好,但我不确定如何使用 PHP 来做到这一点。

我尝试过使用这两种方法:

1)在这里建议使用Curl:通过PHP发出HTTPS请求并获得响应

2) 使用此处建议的 file_get_contents:如何从 PHP 发送 GET 请求?

但是第一个没有给我任何回复。第二个给了我以下错误:

failed to open stream: HTTP request failed

这是我的 curl 代码:

$url="https://xxxxx.com";
$ch=curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;

对于 file_get_contents:

$url="https://xxxx.com";
$response=file_get_contents($url);
echo $response;

该 URL 将为我正在测试的 API 返回一个 XML 响应。有人可以指出我正确的方向吗?

谢谢!

4

1 回答 1

0

如果我们专注于发送用户名和密码的要求,因为我怀疑这是你的主要问题,试试这个

$ch = curl_init();

$url="https://xxxxx.com";
// OR - check with your server's operator
$url="http://xxxxx.com";

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_USERPWD, "$username:$password");
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
// or maybe 
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// - see http://stackoverflow.com/questions/4753648/problems-with-username-or-pass-with-colon-when-setting-curlopt-userpwd
// check the cURL documentation

$output = curl_exec($ch);
$info = curl_getinfo($ch);
// don't forget to check the content of $info, even a print_r($info) is better 
// than nothing during debug
curl_close($ch);
于 2012-10-08T23:52:35.280 回答