cURL Отправка POST данных

Статус
В этой теме нельзя размещать новые ответы.
  • Заблокирован
  • #11
Если не обязательно через курл, то можно через сокеты, где ты сам можешь изменить любой заголовок. Вот пример:
PHP:
$fp = fsockopen($host, 80, $errno, $errstr, 30);
if(!$fp){
    echo "$errstr ($errno)<br />\n";
}else{
    $out = "POST *** HTTP/1.1\r\n";
    $out .= "Host: ***\r\n";
	$out .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.2) Gecko/20100115 Firefox/3.6\r\n";
	$out .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
	$out .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
	$out .= "Keep-Alive: 115\r\n";	
	$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
	$out .= "Content-Length: ".strlen($data)."\r\n\r\n";
	$out .="сюда данные";
    fwrite($fp, $out);
    while (!feof($fp)) {
        //echo fgets($fp, 128);
		$resp2=$resp2.fgets($fp, 128);
    }
    fclose($fp);
}
 
X-Requested-With: XMLHttpRequest
Content-Type: text/javascript+json
Content-Transfer-Encoding: binary
Connection: keep-alive
Posting 312 bytes...
{"method":"Comments.Preview","params":[{"author":"dfghjk","email":"sdfgh@fgh.iuy
hgtf","url":"edfg.uytgf","text":"bdx gxdf xf hxf hdfg h er s gsg jerg hdukm
es gu,efgsb xbt w dt nb wul, eru l, d hn wefwrhdtnws dyjuk serf heft th sdwr
hdtmn artnfesrtjrthbrg ndty","entry_xid":"6a00d83452d6c969e200d83452d6ce6 9e2
"}]}
Что здесь необычного? Результат работы Frontend-а, затем XMLHttpRequest конвертирует JavaScript-массив data в PHP-массив $_REQUEST (если не ошибаюсь :)) и результат обрабатывается Backend-дом.
Для удаленного постинга достаточно передать в скрипт наименования и значения полей формы, что Вы и успешно сделали. Зачем тогда вам передача данных JSON? Ведь тогда нужно обращаться к Backend-у, а не напрямую к обработчику формы.
 
Не...
Заголовки это вещь коварная...
Я обычно отсеиваю все что можно через снифак отыскивая 100% нужные.
это да, но всё равно, я посылаю заголовки типа
Accept Accept-Encoding Keep-Alive Connection keep-alive, тк для большей схожести с браузером. ибо по дефалту курл генерит всё мо минимуму
HTML:
 GET /chek.php?x=redirect HTTP/1.1
Host: adobe.com
Accept: */*


Тут я говарил немного не об этом...
Я отправляю данные к себе на скрипт и получаю постой пост.
Вот и подумал может курл как сам сообразит если будет задон такой заголовок... Вот почему скорее это бред...
В принципе решения так и не нашел.
Отрубил яву пропостил и по старинке все сделал.
Но все равно интересный случай....
Интересный не интересный, но заголовки не зря придумали) при отправке 'Content-Type: text/javascript+json' получил json сообщение об ошибке капчи, так что всё норм. Пост слал
HTML:
    curl_setopt ($ch, CURLOPT_POST, 1); 
    curl_setopt ($ch, CURLOPT_POSTFIELDS, 'qqqq');
 
Если не обязательно через курл, то можно через сокеты...
)))
Это уже в крайнем случае...
Обычно именно так и делаю.
Неробит cURL сокеты спасут весь мир ! :D

Добавлено через 1 минуту
Что здесь необычного? Результат работы Frontend-а, затем XMLHttpRequest конвертирует JavaScript-массив data в PHP-массив $_REQUEST (если не ошибаюсь :)) и результат обрабатывается Backend-дом.
Для удаленного постинга достаточно передать в скрипт наименования и значения полей формы, что Вы и успешно сделали. Зачем тогда вам передача данных JSON? Ведь тогда нужно обращаться к Backend-у, а не напрямую к обработчику формы.

Вы часто работаете с HTTP ?
Я да. Встретил подобное впервые.
Вот то и странно.
Про обработчика так ничего и не понял...
А что запрос от явы не на аброботчик уходит !? o_O
Работать через яву проще тем что данных на входе и выходе минимум.

Добавлено через 5 минут
Интересный не интересный, но заголовки не зря придумали) при отправке 'Content-Type: text/javascript+json' получил json сообщение об ошибке капчи, так что всё норм.


Теперь 1 интересно как они их получают...
Потому как отправляя запрос на свой скрипт он печатал пустой $_POST
Ладно... Время будит буду ковыряться...
 
Мдя.... Нубко я все таки и ещё какое... (((
А можно ли как то просмотреть чего там наконфигурировал curl ?
То есть полностью все заголовки которые он собирается отправить...
Просто уже второй день все доноры как взбесились...
Ничерта не принемают...
Или я зря лето все балду пропинал....
 
А можно ли как то просмотреть чего там наконфигурировал curl ?
То есть полностью все заголовки которые он собирается отправить...
Для этого есть оч полезная опция - CURLINFO_HEADER_OUT, как только о ней узнал, сразу добавил в свой класс. Отлично подходит для отладки
PHP:
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLINFO_HEADER_OUT, true);
curl_exec($ch);
var_dump(curl_getinfo($ch,CURLINFO_HEADER_OUT));
?>
Чтобы посмотреть что вернул хостинг использую CURLOPT_HEADERFUNCTION.
 
Все.
Пошел переписывать свой класс........
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху