Здравствуйте! В отладчике хрома вижу response с нужными мне параметрами
{"d":{"__type":"PremiumSSS_Download_Model+PreviewResult","DownloadUrl":"http://www.solidcomponents.com/company/out/6573770/3dpreview.3dxml","PartNumber":"i24-45","ErrorMessage":null}}
При просмотре запроса вижу, что запрос отправляется вместе с некоторым json-кодом, который отображается в блоке request payload:
{Names: ["Supply_Voltage", "Output_Current"], Values: ["24", "45"], ModelId: 778860, CatalogId: 11614,…}
Далее составляю запрос, в который передаю json в виде post:
$payload = '{Names: ["Diam_Hole"], Values: ["0,12500"], ModelId: 663563, CatalogId: 11291, View2D: "2", Config: "",…}';
echo $page = requestPage('https://www.sait.com/premiumsss-download-model.aspx/GetModelPreviewUrl', $payload);
Сама функция запроса:
function requestPage( $url, $post = null ){
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt( $ch, CURLOPT_ENCODING, "UTF-8" );
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36');
curl_setopt($ch, CURLOPT_COOKIEJAR,
$_SERVER['DOCUMENT_ROOT'].'/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE,
$_SERVER['DOCUMENT_ROOT'].'/tmp/cookie.txt');
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json; charset=UTF-8',
'X-Requested-With: XMLHttpRequest',
'Accept-Encoding: gzip, deflate',
'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4',
'Accept: application/json, text/javascript, */*; q=0.01',
'Connection:keep-alive',
'Origin: http://site.com',
]);
if( $post ){
curl_setopt( $ch, CURLOPT_POSTFIELDS, $post );
}
if (($html = curl_exec($ch)) == false && $html == '')
{
echo 'Ошибка curl: ' . curl_error($ch);
}
curl_close( $ch );
return $html;
}
В итоге получаю ошибку {"Message":"There was an error processing the request.","StackTrace":"","ExceptionType":""} Надо сказать практически этой же функцией прохожу авторизацию на сайте, но этот запрос с новым post, который берется из payload не работает. Что я делаю не так?
Виртуальный выделенный сервер (VDS) становится отличным выбором
ПриветПеренёс свой свйт OpenCar с shared-хостинга на VPS, изменил конфиг
Как в данном случае перезапросить форму отправки, чтобы при обновлении страницы не было сообщения "Подтвердите повторную отправку формы"mywebforyou