Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Сокеты... соединеник к worldlingo.com
 
 автор: eclipse   (09.03.2006 в 12:21)   письмо автору
 
 

При открытии сокета всё происходи классна... то есть код

$host = "204.13.83.253";
$cfgPort = 80;
$cfgTimeOut = 10;

// open a socket
if(!$cfgTimeOut)
// without timeout
$s = fsockopen($host, $cfgPort);
else
// with timeout
$s = fsockopen($host, $cfgPort, &$errno, &$errstr, $cfgTimeOut);

классна срабатывает... но вот запросы почему то не идут... хотя они проснифаны http-снифером и после обращения этих всех запросов в файл выводится следующее

HTTP/1.1 400 Bad Request Date: Thu, 09 Mar 2006 09:11:24 GMT Server: Apache Content-Length: 294 Connection: close Content-Type: text/html; charset=iso-8859-1 
Bad Request

Your browser sent a request that this server could not understand.

Apache Server at www.worldlingo.com Port 80

может к нему надо кидать какие нить определённые запросы или ещё что нить... интересна и оч узнать ваши предложения по этому поводу =)

   
 
 автор: Trianon   (09.03.2006 в 12:27)   письмо автору
 
   для: eclipse   (09.03.2006 в 12:21)
 

Он же честно ответил "Ваш браузер прислал запрос, который мне не понять. "
И нам наверное тоже не понять, поскольку не видно самого запроса.
Вы бы показали пример запроса, а не только отклика.

   
 
 автор: eclipse   (09.03.2006 в 12:38)   письмо автору
 
   для: Trianon   (09.03.2006 в 12:27)
 

=) сейчас... вот он =)

fputs ($s, "GET /wl/translate?wl_qopt=0&wl_lp=JA-en&wl_fl=2&wl_rurl=http://auctions.yahoo.co.jp/jp/0-category.html&wl_url=http://site.com/0.html HTTP/1.1 \n");
fputs ($s, "Content-length: * \n");
fputs ($s, "Connection: Keep-Alive, TE \n");
fputs ($s, "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.50 \n");
fputs ($s, "Host: $host \n");
fputs ($s, "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 \n");
fputs ($s, "Accept-Language: ru, en \n");
fputs ($s, "Accept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1 \n");
fputs ($s, "Referer: http://www.hpforum.ru\n");
fputs ($s, "Content-Type: text/html;charset=euc-jp \n");
fputs ($s, "pragma: no-cache \n");
fputs ($s, "Cache-Control: no-cache, no-store \n");
fputs ($s, "Keep-Alive: timeout=3 \n");
fputs ($s, "Connection: Keep-Alive \n");

   
 
 автор: Trianon   (09.03.2006 в 13:30)   письмо автору
 
   для: eclipse   (09.03.2006 в 12:38)
 

Я даже не знаю, что Вам ответить.
Первое, что бросается в глаза, это синтаксис.
Почему-то строки завершаются LF вместо CRLF, в конце каждой строки воткнут пробел.
В поле длины тела запроса стоит звездочка...
А второе - такие ... обильные... условия запроса.

Вы действительно хотите от сервера то, о чем пишите?
Вы хотите общаться с сервером по протоколу HTTP 1.1 а не HTTP 1.0 , хотя 1.1 стократ сложнее? (Я, например, его не знаю. )
Хотите держать соединение установленным 3 секунды (Connection: Keep-Alive, Keep-alive: timeout=3)?
Хотите принимать в ответ дикое количество разных типов файлов (Accept:) , созданных на разных языках (Accept-Language: ) и в разных кодировках(Accept-Charset:)?
И чей Content-Type у Вас text/html;charset=euc-jp ?

Или просто срисовали откуда-то весь этот текст?
Попробуйте упростить запрос. Попробуйте сформировать только те условия, которые Вам действительно необходимы.

GET ...
Host: $host
и хватит на первый раз.

И еще. в параметрах GET , в частности wl_rurl , значения стоит urlendode'ить.
Кстати, очень возможно, что и параметры применены избыточно.

   
 
 автор: eclipse   (09.03.2006 в 13:42)   письмо автору
 
   для: Trianon   (09.03.2006 в 13:30)
 

такой же текст... точнее примерно такой же но другой по значениям я раньше использовал при коннекте к другому сайту... и с ним проблем не было... тогда постараюст как можно лучше упростить запросы... может и поможет =)

   
 
 автор: eclipse   (09.03.2006 в 14:16)   письмо автору
 
   для: eclipse   (09.03.2006 в 13:42)
 

вообще всегда использовал сокеты для отображения ниформации с другого сайта на свой сайт... но недавно узнал о

file_get_contents

интересно узнать что лучше использовать в таких случаях... сокеты или именно эту функцию???

   
 
 автор: cheops   (09.03.2006 в 19:30)   письмо автору
 
   для: eclipse   (09.03.2006 в 14:16)
 

Если вам не требуется подделки реферера, пользовательского агента, cookie или SID, лучше, конечно, пользоваться file_get_contents(), так как она работает быстрее. Однако ряд серверов могут выкидывать фортели, например, предоставлять информацию в другой кодировке, так как file_get_contents() не передаёт предпочитаемые медиа-типы.

   
 
 автор: eclipse   (09.03.2006 в 21:04)   письмо автору
 
   для: cheops   (09.03.2006 в 19:30)
 

=) всё ясно =) буду иметь ввиду =) а так мне уже всё таки удалось подсоединиться к вёлдиндига =)

   
 
 автор: Trianon   (10.03.2006 в 10:00)   письмо автору
 
   для: eclipse   (09.03.2006 в 21:04)
 

>мне уже всё таки удалось подсоединиться к вёлдиндига =)

Написали бы текст успешного запроса... интересно же! :)

   
 
 автор: eclipse   (10.03.2006 в 14:21)   письмо автору
 
   для: Trianon   (10.03.2006 в 10:00)
 

=) раз интересна то вот =)

$url = "http://www.nnm.ru";

fputs ($s, "GET http://$host/wl/translate?wl_qopt=0&wl_lp=RU-es&wl_fl=2&wl_rurl=$url&wl_url=$url HTTP/1.1 \n");
fputs ($s, "Host: $host \r\n\r\n");
fputs ($s, "Connection: close\n\n");

   
 
 автор: Trianon   (10.03.2006 в 14:48)   письмо автору
 
   для: eclipse   (10.03.2006 в 14:21)
 

fputs ($s, "Connection: close\n\n"); смело можете убрать. Все равно сервер эту строку среди полей заголовка не увидит.
И версию можете понизить до HTTP 1.0

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования