|
|
|
Проблема при запросе документа через HTTP
|
|||
|---|---|---|---|
|
#18+
Всем привет, Помогите мне пожалуйста решить следующую проблему. У меня есть CGI-программа написанная на C++ (о скриптовых языках и речи быть не может). Ее задача,- запросить содержимое документа находящегося на другом сервере используя протокол HTTP. Запрос осуществляется следующим образом: Типовое TCP/IP соединение с использование WinSock/Berkley Sockets (код изначально мультиплатформенный). Оно работает идеально в любом случае, но на всякий случай основной код ниже. Server=socket(AF_INET, SOCK_STREAM, 0); if(Server==INVALID_SOCKET) { ERRORLOG("UNISocket - ошибка при создании socket объекта"); throw (signed int) 2; } SERVERAddress.sin_family = AF_INET; SERVERAddress.sin_addr.s_addr = inet_addr(ServerIP.c_str()); SERVERAddress.sin_port = htons(ServerPort); result=connect(Server,(struct sockaddr*)&SERVERAddress, sizeof(SERVERAddress)); Соединение как я и говорил проходит просто идеально,- "result" возвращает 0 как и нужно. Проблема же возникает при запросе документов (http://www.aldostools.com/pad/agentreader.xml, http://m8software.com/padsx/demo.xml (для примера)). Интересно то, что через браузер оба документа запрашиваются и получаются идеально, тогда как ни в telnet ни в программе их получить не получается. В то же время документы в других сайтов получаются идеально (!????). Т.е. некоторые сайты меня отшивают, а некоторые нет. Для программного получения документов я использую запрос идентичный таковому для использования в telnet: Для http://www.aldostools.com/pad/agentreader.xml,- GET /pad/agentreader.xml HTTP/1.0 Connection:Keep-Alive При этом в ответ получаю полный бред,- код 404. Повторюсь, что в браузере все получается идеально. Для http://m8software.com/padsx/demo.xml,- GET /padsx/demo.xml HTTP/1.0 Connection:Keep-Alive При этом в ответ получаю бред пуще предыдущего,- "HTTP/1.1 503 Unknown site". Может я использую какой то упрощенный запрос? И таким образом некоторые серваки меня просто отшивают в наглую? Подскажите мне пожалуйста правильный запрос (текст запроса) для получения данных документов. Заранее спасибо за любую помощь, С Уважением, Иванов Артем. www.cubereality.com ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 12:01 |
|
||
|
Проблема при запросе документа через HTTP
|
|||
|---|---|---|---|
|
#18+
указывай в запросе полный урл, включая сервер. затем, есть такой параметр: Server: укажи еще и его. я думаю дело в том, что на этом сервере(проблемном) мультисайтовая конфигурация, тоесть по одному айпишнику лежит несколько сайтов. и с какого именно брать документ сервер определяет по названию сервера в url, мне так кажется. короче проверь. а самый надежный способ - подсмотреть что посылает туда браузер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 12:08 |
|
||
|
Проблема при запросе документа через HTTP
|
|||
|---|---|---|---|
|
#18+
насчет Server: это я прогнал. это в ответе есть. а тебе нужно Host: указать в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 12:14 |
|
||
|
Проблема при запросе документа через HTTP
|
|||
|---|---|---|---|
|
#18+
alex_kнасчет Server: это я прогнал. это в ответе есть. а тебе нужно Host: указать в запросе. Угу - заголовок Host обязателен в Http ;) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 13:42 |
|
||
|
Проблема при запросе документа через HTTP
|
|||
|---|---|---|---|
|
#18+
Юзай функции: InternetOpen InternetConnect HttpOpenRequest HttpSendRequest HttpQueryInfo InternetReadFile и т.д. Они специально предназначены для работы через HTTP, в том числе и для получения файла. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.05.2005, 13:59 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=33046077&tid=2033372]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
57ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 408ms |

| 0 / 0 |
