Я написал php скрипт, который входит в систему на сайте, переходит на вкладку c и извлекает файл xlsx.
Скрипт был написан и протестирован на MAMP и затем перемещен на рабочий сервер. (Apache). Он все еще работает на производственном сервере, но точно такой же сценарий не работает на MAMP (localhost).
Что изменилось: текущий MAMP 5.6 предыдущий был старше. Я также использую MacOS Catalina (новый компьютер).
Я проверил брандмауэр и протестировал в разных сетях и т.д. c. Я не могу найти проблему.
Любые предложения, пожалуйста?
Обновление: я не получаю никакой ошибки, он просто ничего не возвращает.
Функции, которые я использую для создания вызов cURL:
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, $login_request_headers);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_jar_location);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar_location);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_POST, $post);
curl_setopt($curl, CURLOPT_HTTPGET, $get);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, $return_transfer);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, $follow_acction);
return $result = curl_exec($curl);
curl_close($curl);
}
public function request_post($url, $login_request_headers, $post, $get, $follow_acction, $return_transfer, $cookie_jar_location, $post_data) {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_NOBODY, 0);
curl_setopt($curl, CURLOPT_VERBOSE, 0);
curl_setopt($curl, CURLOPT_HTTPHEADER, $login_request_headers);
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_jar_location);
curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie_jar_location);
curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post_data));
curl_setopt($curl, CURLOPT_POST, $post);
curl_setopt($curl, CURLOPT_HTTPGET, $get);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, $return_transfer);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, $follow_acction);
return $result = curl_exec($curl);
curl_close($curl);
}
Код для звонка:
//------call to login url------
$site_url1 = "https://app.xyz.com/";
$login_request_headers1 = [
'Host: app.xyz.com',
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'DNT: 1',
'Connection: keep-alive',
'Upgrade-Insecure-Requests: 1'
];
$functions->request_get($site_url1, $login_request_headers1, 0, 1, 0, 0, $cookie_jar_location);
$cookie_file_content1 = file_get_contents($cookie_jar_location);
$strlen = strlen($cookie_file_content1);
$cake_php = trim(substr($cookie_file_content1, $strlen-27));
//------call to POST login process------
$site_url2 = "https://app.xyz.com/";
$login_post_array = array("_method" => "POST", "data[User][username]" => SC_USER, "data[User][password]" => SC_PASS);
$login_request_headers2 = [
'Host: app.xyz.com',
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Referer: https://app.xyz.com/',
'Content-Type: application/x-www-form-urlencoded',
'Content-Length: '.strlen(http_build_query($login_post_array)),
'DNT: 1',
'Connection: keep-alive',
'Cookie: CAKEPHP='.$cake_php,
'Upgrade-Insecure-Requests: 1'
];
$functions->request_post($site_url2, $login_request_headers2, 1, 0, 0, 0, $cookie_jar_location, $login_post_array);
//------call to GET client site ()------
$site_url4 = "https://clients.xyz.com/";
$login_request_headers4 = [
'Host: clients.xyz.com',
'User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.12; rv:69.0) Gecko/20100101 Firefox/69.0',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: en-US,en;q=0.5',
'Referer: https://app.xyz.com/',
'DNT: 1',
'Connection: keep-alive',
'Cookie: CAKEPHP='.$cake_php.'; loggedIn[username]=test%40email.com; loggedIn[password]=testpassword',
'Upgrade-Insecure-Requests: 1'
];
$functions->request_get($site_url4, $login_request_headers4, 0, 1, 0, 0, $cookie_jar_location);