0

最近,我使用 JSON Plugin 成功获取了一个 wiki 页面的内容:

        $username = '****';
        $password = '****';
        $sc = new Serverclient_helper();
        $login = "http://********/api.php?action=login&lgname=$username&lgpassword=$password";
        $content = $sc->getContent($login,array(),false);   

        $host = "http://******/api.php?action=parse&format=json&page=Main";
        $content = $sc->getContent($host);
        $content = json_decode($content);

今天我尝试做同样的事情,但是另一个页面也需要登录,比如 wiki 页面。它没有成功。我认为这是因为这个页面没有维基页面的结构。这里有一些维基页面。我已经阅读了很多,并且了解到我的页面正在使用基于表单的身份验证。但我仍然想知道如何访问页面的全部内容。

我也使用过curl_setopt,但它并没有帮助我获取内容。只显示登录页面,但我没有登录。

这是我的代码:

$username='*****';
$password='*****';
$location='http://*****/startphp';


$mycurl = curl_init ();
curl_setopt($mycurl,CURLOPT_URL,$location);
curl_setopt($mycurl,CURLOPT_RETURNTRANSFER,1);
curl_setopt($mycurl,CURLOPT_USERPWD,"$username:$password");
curl_setopt($mycurl, CURLOPT_TIMEOUT, 10);

$result = curl_exec ($mycurl); 
var_dump($result);

提前致谢!

4

1 回答 1

0

CURLOPT_USERPWD仅适用于基本 HTTP 身份验证。

您将需要使用POST与服务匹配的命令。

$data = array('username' => 'User', 'password' => 'Pass');

curl_setopt($ch, CURLOPT_POST, 2);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

您还需要考虑存储SESSION网站为您提供的内容

CURLOPT_COOKIE CURLOPT_COOKIEFILE CURLOPT_COOKIEJAR选项

于 2013-08-19T16:30:06.150 回答