Доброго времени суток уважаемые форумчани! Как мне отправить пост запрос типа: Code: POST /xx/www/into HTTP/1.1 Host: xxx.ru User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5 Referer: http://xxx.ru/pet/xx/?fdas=1 Content-Length: 46 Origin: http://xxx.ru X-Requested-With: XMLHttpRequest Content-Type: application/x-www-form-urlencoded Accept: application/json, text/javascript, */* Accept-Encoding: gzip,deflate,sdch Cookie: source=234; __utmz=21.22.3.4.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); uid=143123; hw=ksdfsdf@masas; uea=5; __utma=1234.45656.34535.1745.128745.1; __utmc=1155; __utmb=1125.2.1.145 Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4 Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3 ajax=true&piz=123123&json=true через php или html ? т.е. как отправлять этот запрос каждый раз после обновления страницы ? Спасибо!
если запрос постоянно один и тот же, то PHP: <?php $fp = fsockopen("xxx.ru", 80); fputs($fp, "POST /xx/www/into HTTP/1.1\r\n Host: xxx.ru\r\n User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5\r\n Referer: http://xxx.ru/pet/xx/?fdas=1\r\n Content-Length: 46\r\n Origin: http://xxx.ru\r\n X-Requested-With: XMLHttpRequest\r\n Content-Type: application/x-www-form-urlencoded\r\n Accept: application/json, text/javascript, */*\r\n Accept-Encoding: gzip,deflate,sdch\r\n Cookie: source=234; __utmz=21.22.3.4.utmcsr=(direct)|utmccn=(direct)|u tmcmd=(none); uid=143123; hw=ksdfsdf@masas; uea=5; __utma=1234.45656.34535.1745.128745.1; __utmc=1155; __utmb=1125.2.1.145\r\n Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4\r\n Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3\r\n\r\n ajax=true&piz=123123&json=true"); fclose($fp); ?> если нет, и передаваемые параметры изменяются - то нужно правильно формировать последнюю строку и менять content-length
нет, не слабо на вскидку, можно создать форму c hidden-параметрами и method=POST и по onLoad сабмитить её, чтобы отправлялось по загрузке страницы и без кнопки
|qbz| да, этот способ наиболее удобный, нет проблем с формированием заголовка, и в тоже время без подключения левых либ, как в случае с курлом
Aligator можно, но зачем? если запрос всегда один и тот же, не нужно авторизоваться, собирать куки итд, то лучше воспользоваться каким-то другим методом SHiNiGaMi по-моему, header() отправляет запрос пользователю, т.е. отправить POST запрос нельзя GET - можно через header("Location: http://site.ru?ab=cd")
точнее браузеру, т.е. Code: header("POST /xx/www/into HTTP/1.1\r\n Host: xxx.ru\r\n User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5\r\n Referer: http://xxx.ru/pet/xx/?fdas=1\r\n Content-Length: 46\r\n Origin: http://xxx.ru\r\n X-Requested-With: XMLHttpRequest\r\n Content-Type: application/x-www-form-urlencoded\r\n Accept: application/json, text/javascript, */*\r\n Accept-Encoding: gzip,deflate,sdch\r\n Cookie: source=234; __utmz=21.22.3.4.utmcsr=(direct)|utmccn=(direct)|u tmcmd=(none); uid=143123; hw=ksdfsdf@masas; uea=5; __utma=1234.45656.34535.1745.128745.1; __utmc=1155; __utmb=1125.2.1.145\r\n Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4\r\n Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3");\r\n\r\n");
так точно работать не будет, там одной строкой должно быть, т.е. header("POST /xx/www/into HTTP/1.1"); header("Host: xxx.ru"); .... но думаю что и так работать не будет, но проверять лень )
<?php $fp = fsockopen("xxx.ru", 80); fputs($fp, "POST /xx/www/into HTTP/1.1\r\n Host: xxx.ru\r\n User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.0.249.89 Safari/532.5\r\n Referer: http://xxx.ru/pet/xx/?fdas=1\r\n Content-Length: 46\r\n Origin: http://xxx.ru\r\n X-Requested-With: XMLHttpRequest\r\n Content-Type: application/x-www-form-urlencoded\r\n Accept: application/json, text/javascript, */*\r\n Accept-Encoding: gzip,deflate,sdch\r\n Cookie: source=234; __utmz=21.22.3.4.utmcsr=(direct)|utmccn=(direct)|u tmcmd=(none); uid=143123; hw=ksdfsdf@masas; uea=5; __utma=1234.45656.34535.1745.128745.1; __utmc=1155; __utmb=1125.2.1.145\r\n Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4\r\n Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.3\r\n\r\n ajax=true&piz=123123&json=true"); fclose($fp); ?> Чета не работает.... Можно поподробней "можно создать форму c hidden-параметрами и method=POST и по onLoad сабмитить её"
Все ОК! Еще один вопрос: Если надо отправить две строки вместо одной. т.е. если надо отправить: Надо переписать для каждой строки fputs, или можно обойтись ?
сразу две строки одним запросом? так нельзя если двумя запросами, то проще будет написать функцию отправки, в которую передавать изменяющийся параметр piz. если его длина может быть больше (или меньше) 6 символов, нужно будет пересчитать content-length