Я делаю запрос на публикацию cURL с помощью следующего скрипта, который публикует скрипт обработки формы:
$url = "http://www.example.com/process_script.php";
$referer = "http://www.example.com";
$agent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11";
$postdata = array('message' => 'Hello, World!', 'name' => 'Bob');
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
curl_setopt($ch, CURLOPT_REFERER, $referer);
curl_setopt($ch, CURLOPT_USERAGENT, $agent);
curl_exec($ch);
Он отлично работает на некоторых URL.Кроме того, когда я публикую его в своем тестовом скрипте (который просто выводит реферер, агент и постданные), он работает просто отлично.
Однако некоторые серверы выдают мне эту причудливую ошибку "Сервер не может понять ваш запрос", хотя,Это не 403, потому что когда я удаляю опцию пользовательского агента, я получаю 403. Что-то не так со строкой пользовательского агента?Он извлекается непосредственно из моего реального браузера.
Есть ли дополнительные параметры, которые необходимо настроить для эмуляции реального браузера?