Вверх ↑
Этот топик читают: Гость
Ответов: 876
Рейтинг: 101
#1: 2008-12-07 21:35:29 ЛС | профиль | цитата
Пытаюсь я сделать возможность работать с http протоколом через TCP

code_10892.txt

Всеравно не пойму как сделать на сервере нече не видно. не ответа ни привета
карма: 1

0
файлы: 1code_10892.txt [800B] [137]
Ответов: 5446
Рейтинг: 323
#2: 2008-12-07 22:20:13 ЛС | профиль | цитата
У меня видно:

access.log:

127.0.0.1 - - [07/Dec/2008:13:17:59 -0600] "GET HTTP/1.1" 400 338

error.log:

[Sun Dec 07 13:17:59 2008] [error] [client 127.0.0.1] Invalid URI in request GET HTTP/1.1
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#3: 2008-12-07 23:12:09 ЛС | профиль | цитата

GET HTTP/1.1
это никак не соответствует заявленному стандарту. По HTTP 1.х должно быть так

GET<space><URL><space>HTTP/1.1
где <URL> никак не может являтся пустой строкой. Для корня сайта должно стоять /
карма: 27
1
Голосовали:Konst
Ответов: 876
Рейтинг: 101
#4: 2008-12-08 02:23:39 ЛС | профиль | цитата
Наверно я сервер криво настроил, но почему тогда onRead пустой если запрос правильный то должен ответ придти.
Может у кого найдеться свободная минутка исправьте так что было и ответ от сервера.
карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#5: 2008-12-08 08:04:45 ЛС | профиль | цитата
flud писал(а):
если запрос правильный то должен ответ придти.

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


Add(TCP_Client,13954329,238,140)
{
Port=80
IP="81.176.226.166"
link(onRead,8026477:doAdd,[])
link(Data,10278302:Text,[])
}
Add(Memo,10278302,245,77)
{
Left=5
Top=25
Width=380
Height=220
Strings=#14:GET / HTTP/1.1|15:Host: hiasm.com|89:User-Agent: Mozilla/5.0 (X11; U; Linux i686; ru; rv:1.9b5) Gecko/2008050509 Firefox/3.0b5|17:Accept: text/html|0:|
}
Add(Button,11118746,119,140)
{
Left=320
Top=250
Width=65
Caption="send"
link(onClick,10757074:doEvent1,[])
}
Add(Memo,8026477,294,140)
{
Left=5
Top=275
Width=380
Height=205
}
Add(Hub,10757074,168,140)
{
link(onEvent1,13954329:doOpen,[])
link(onEvent2,13954329:doSend,[(215,153)(215,160)])
}

карма: 27
1
Голосовали:Konst
Ответов: 876
Рейтинг: 101
#6: 2008-12-08 13:31:07 ЛС | профиль | цитата
Как я не пробовал, ответ от сервера всеравно не приходит.

error.log писал(а):
[Mon Dec 08 12:28:18 2008] [error] [client 127.0.0.1] request failed: error reading the headers

карма: 1

0
Администрация
Ответов: 15295
Рейтинг: 1519
#7: 2008-12-08 18:36:41 ЛС | профиль | цитата
flud, если ответа от hiasm.com не приходит значит проблемы с сетью. И ничего тут пробовать больше не надо.
карма: 27
0
Гость
Ответов: 17029
Рейтинг: 0
#8: 2009-01-22 08:42:02 правка | ЛС | профиль | цитата


Редактировалось 2 раз(а), последний 2025-01-12 08:17:33
карма: 0

0
Ответов: 876
Рейтинг: 101
#9: 2009-01-22 08:42:57 ЛС | профиль | цитата
83.99.235.237 это тоже памидор

вот он что делает


|17:Accept: text/html|0:|


|17:Accept: text/html|
карма: 1

0
Ответов: 2125
Рейтинг: 159
#10: 2009-01-22 14:50:06 ЛС | профиль | цитата
Это фича такая - последнюю пустую строку удалять.
Иногда полезно, а иногда, как в данном примере, вредно.
карма: 1

1
Голосовали:Konst
Ответов: 876
Рейтинг: 101
#11: 2009-01-23 14:17:14 ЛС | профиль | цитата
Может кому будет интересно


Add(MainForm,7272375,259,273)
{
Width=420
Height=600
Caption="http"
BorderStyle=1
DragForm=0
TransparentColor=16711935
Position=1
Point(doTop)
Point(doLeft)
}
Add(Button,11118746,259,427)
{
Left=5
Top=130
Width=65
Caption="отправить"
Flat=0
link(onClick,11397624:doSend,[])
}
Add(Edit,11416744,392,245)
{
Left=5
Top=5
Width=405
Ctl3D=1
Text="http://www.google.ru/search?hl=ru&q=hiasm"
}
Add(MultiElementEx,11397624,462,420)
{
link(Url,11416744:Text,[(468,348)(398,348)])
link(Accept,15578446:Text,[(475,345)(440,345)])
link(Accept-Language,11497402:Text,[])
link(User-Agent,6925470:Text,[(489,345)(524,345)])
link(Connection,5606946:Text,[(496,348)(566,348)])
link(onRead,4148185:doEvent1,[])
}
BEGIN_SDK
Add(EditMultiEx,14273051,21,21)
{
WorkCount=#25:doGen=Генерировать запрос|23:doSend=Отправить запрос|
EventCount=#28:onRead=Приём данных из порта|71:onConnect=Событие происходит при успешном соединении клиента с сервером|67:onDisconnect=Событие происходит при отсоединении клиента от сервера|
VarCount=#25:Host IP=содержит IP хоста|24:SendData=Содержит запрос|65:Active=Содержит 1 если соединение активно, и 0 в противном случае|
DataCount=#48:Url=Вместе с http:// пример http://www.google.lv|25:Accept=Например text/html|27:Accept-Language=например ru|70:User-Agent=Например Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)|40:Connection=Например Close или Keep-Alive|
Width=860
Height=445
link(doGen,1184221:doEvent1,[(24,27)(24,195)])
link(Host IP,15483361:Var1,[(27,317)])
link(SendData,2671981:Var1,[(34,324)])
link(Active,13954329:Active,[(41,434)(580,434)])
link(doSend,7173150:doEvent1,[(24,34)(24,377)])
}
Add(FormatStr,15866197,238,196)
{
DataCount=1
Mask="GET %1 HTTP/1.1"
link(onFString,5303860:doEvent1,[])
link(Str1,1733901:Result,[])
}
Add(Hub,1184221,70,189)
{
OutCount=8
link(onEvent1,13798836:doEvent1,[(95,195)(95,132)])
link(onEvent2,15866197:doString,[])
link(onEvent3,6341026:doString,[])
link(onEvent4,12988138:doString,[])
link(onEvent5,3929282:doString,[])
link(onEvent6,4876176:doString,[])
link(onEvent7,2048515:doString,[])
link(onEvent8,9355736:doData,[(245,244)(245,286)])
}
Add(Host,3325502,721,133)
{
link(onIPByHost,1593286:doValue,[])
link(HostName,6062359:Var3,[(734,107)])
}
Add(FormatStr,4876176,378,224)
{
DataCount=1
Mask="Host: %1"
link(onFString,5303860:doEvent5,[])
link(Str1,6062359:Var2,[(384,158)(202,158)])
}
Add(Hub,5303860,497,196)
{
InCount=7
OutCount=1
link(onEvent1,9225825:doAdd,[])
}
Add(Memory,1593286,819,140)
{
}
Add(Hub,8659068,434,133)
{
link(onEvent1,13410994:In,[(476,139)(476,83)])
link(onEvent2,3325502:doIPByHost,[])
}
Add(LineBreak,14453778,721,175)
{
Caption="Clear"
link(Out,1593286:doClear,[(800,181)(800,153)])
Primary=[13410994,-217,-98]
}
Add(StrList,9225825,581,196)
{
}
Add(LineBreak,15173380,483,273)
{
Caption="doClear"
link(Out,9225825:doClear,[(557,279)(557,209)])
Primary=[3476637,-301,-105]
}
Add(Hub,13798836,119,126)
{
OutCount=3
link(onEvent1,15654823:doSplit,[(158,132)(158,117)(44,117)(44,62)])
link(onEvent2,8659068:doEvent1,[])
link(onEvent3,3476637:In,[(136,146)(136,174)])
}
Add(StrPart,15654823,56,56)
{
Char="/"
Point(Right)
link(onSplit,6203359:doSplit,[])
link(Str,14273051:Url,[(62,49)(27,49)])
}
Add(StrPart,6203359,98,56)
{
Char="/"
Point(Right)
link(onSplit,3657353:doSplit,[])
}
Add(StrPart,3657353,196,56)
{
Char="/"
Point(Left)
link(onSplit,1733901:doStrCat,[])
}
Add(StrCat,1733901,238,56)
{
Str1="/"
}
Add(GetDataEx,6062359,189,98)
{
link(Data,3657353:Left,[])
}
Add(FormatStr,6341026,273,203)
{
DataCount=1
Mask="Accept: %1"
link(onFString,5303860:doEvent2,[])
link(Str1,14273051:Accept,[(279,43)(34,43)])
}
Add(FormatStr,12988138,308,210)
{
DataCount=1
Mask="Accept-Language: %1"
link(onFString,5303860:doEvent3,[])
link(Str1,14273051:Accept-Language,[(314,37)(41,37)])
}
Add(FormatStr,3929282,343,217)
{
DataCount=1
Mask="User-Agent: %1"
link(onFString,5303860:doEvent4,[])
link(Str1,14273051:User-Agent,[(349,31)(48,31)])
}
Add(FormatStr,2048515,413,231)
{
DataCount=1
Mask="Connection: %1"
link(onFString,5303860:doEvent6,[])
link(Str1,14273051:Connection,[(419,26)(55,26)])
}
Add(TCP_Client,13954329,574,371)
{
Port=80
Point(onError)
Point(onProgress)
link(onRead,14273051:onRead,[(649,377)(649,27)])
link(onConnect,4490901:doEvent1,[])
link(onDisconnect,14273051:onDisconnect,[(649,391)(649,41)])
link(IP,15483361:Var2,[(580,346)(552,346)])
link(Data,2671981:Var2,[])
}
Add(LineBreak,5787872,819,182)
{
Caption="ip"
Type=1
link(Data,1593286:Value,[])
Primary=[13677633,-273,105]
}
Add(Hub,7173150,462,371)
{
link(onEvent1,13954329:doOpen,[])
}
Add(GetDataEx,15483361,539,308)
{
link(Data,13677633:Var,[])
}
Add(GetDataEx,2671981,574,315)
{
link(Data,9225825:Text,[])
}
Add(Hub,4490901,672,378)
{
link(onEvent1,14273051:onConnect,[(700,384)(700,34)])
link(onEvent2,13954329:doSend,[(698,391)(698,424)(534,424)(534,391)])
}
Add(DoData,9355736,350,280)
{
Data=String(
)
link(onEventData,5303860:doEvent7,[(468,286)(468,244)])
}
END_SDK
Add(Edit,11497402,476,231)
{
Left=5
Top=30
Width=405
Ctl3D=1
Text="ru"
}
Add(Edit,5606946,560,245)
{
Left=5
Top=55
Width=405
Ctl3D=1
Text="Close"
}
Add(Edit,6925470,518,238)
{
Left=5
Top=80
Width=405
Ctl3D=1
Text="Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)"
}
Add(Edit,15578446,434,238)
{
Left=5
Top=105
Width=405
Ctl3D=1
Text="text/html"
}
Add(Button,2236945,259,392)
{
Left=75
Top=130
Width=125
Caption="сгенерировать запрос"
Flat=0
link(onClick,15329769:doEvent1,[])
}
Add(Hub,15329769,322,392)
{
OutCount=3
link(onEvent1,11397624:doGen,[(399,398)(399,426)])
link(onEvent2,12293874:doClear,[(388,405)(388,489)])
link(onEvent3,12293874:doAdd,[(388,412)(388,482)])
}
Add(Memo,12293874,469,476)
{
Left=5
Top=155
Width=405
Height=135
Ctl3D=1
link(Str,11397624:SendData,[])
}
Add(Memo,7095215,616,420)
{
Left=5
Top=295
Width=405
Height=275
Ctl3D=1
ScrollBars=2
}
Add(ChildForm,15167431,616,497)
{
FirstUsage=0
}
BEGIN_SDK
Add(EditMulti,12588893,21,21)
{
WorkCount=1
link(doWork1,4553940:doFromText,[(77,27)(77,69)])
}
Add(MainForm,3837526,35,35)
{
Left=35
Top=400
Width=640
Height=480
Caption="ie"
BorderStyle=5
}
Add(WebBrowser,4553940,91,35)
{
Left=130
Top=125
Align=5
Point(doFromText)
}
END_SDK
Add(Hub,4148185,518,420)
{
link(onEvent1,7095215:doAdd,[])
link(onEvent2,15167431:doWork1,[(574,433)(574,503)])
}

Вдруг сможете улучший схемку
карма: 1

0
Ответов: 542
Рейтинг: 12
#12: 2009-01-23 14:26:54 ЛС | профиль | цитата
Кодировка не указана, может это пригодится
code_11553.txt
карма: 0

0
файлы: 1code_11553.txt [1.2KB] [118]
Администрация
Ответов: 15295
Рейтинг: 1519
#13: 2009-01-23 14:32:59 ЛС | профиль | цитата
tsdima писал(а):
Это фича такая - последнюю пустую строку удалять.

насколько я помню проблема там была из-за реализации парсера строк в классах TStringList(или PStrList)...
карма: 27
0
Ответов: 876
Рейтинг: 101
#14: 2009-01-23 18:25:57 ЛС | профиль | цитата
а кто нить знает как отделить Header от Body
карма: 1

0
Ответов: 2125
Рейтинг: 159
#15: 2009-01-23 18:35:07 ЛС | профиль | цитата
Очень просто - пустой строкой
карма: 1

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)