我是编程的初学者,我想问一下我发现的障碍。
在这里,我想卷曲一个站点以获取JSON API。 但是在获取API之前,我必须先登录。
以下是我使用的PHP脚本。
<?php
$user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:71.0) Gecko/20100101 Firefox/71.0";
$curl_crack = curl_init();
CURL_SETOPT($curl_crack,CURLOPT_URL,"https://data.kemkes.go.id/data/dhis-web-commons-security/login.action");
CURL_SETOPT($curl_crack,CURLOPT_USERAGENT,$user_agent);
CURL_SETOPT($curl_crack,CURLOPT_POST,True);
CURL_SETOPT($curl_crack,CURLOPT_POSTFIELDS,"j_username=ss&j_password=ss%&2fa_code=");
CURL_SETOPT($curl_crack,CURLOPT_RETURNTRANSFER,True);
CURL_SETOPT($curl_crack,CURLOPT_FOLLOWLOCATION,True);
CURL_SETOPT($curl_crack,CURLOPT_COOKIEFILE,"cookie.txt"); //Put the full path of the cookie file if you want it to write on it
CURL_SETOPT($curl_crack,CURLOPT_CONNECTTIMEOUT,30);
CURL_SETOPT($curl_crack,CURLOPT_TIMEOUT,30);
$exec = curl_exec($curl_crack);
if(preg_match("/^Dashboard$/i",$exec))
{
echo "Logged in! now lets go to other page while we are logged in, shall we?";
CURL_SETOPT($curl_crack, CURLOPT_URL, "https://data.kemkes.go.id/data/api/analytics.json?dimension=dx:TAqRuO1R1eI;U7BaEXUa1Ii;UEBmmFH8OzT&dimension=pe:20200302;20200303;20200304;20200305;20200306;20200307;20200308;20200309;20200310;20200311;LAST_7_DAYS;TODAY&filter=ou:amZZzlibrMp&skipData=false&skipMeta=false&includeNumDen=false&displayProperty=SHORTNAME");
$exec = curl_exec($curl_crack);
print_r($exec);exit();
curl_close($curl_crack);
}
?>
我的cookie.txt文件是:
JSESSIONID=7D1E047AB7DFCAB90617DB
当我使用print_r
命令时,它什么也不输出。
https://i.stack.imgur.com/f50Ou.png
此代码在哪里出问题? 谢谢,很高兴认识你。