Название: Yandex не отвечает Отправлено: vbi от Август 17, 2011, 11:25 Написал програмку, которая посылает GET запрос на "www.yandex.ru", который по идее должен возвратить содержание страницы, но вместо этого возвращает пустую строку.
Если послать get запрос на "yandex.ru", то яндекс возвращает страницу "302 Moved Permanently" и перенаправляет на "www.yandex.ru", а тот в свою очередь возвращает пустую строку. Как с ним бороться, может какие-то уникальные заголовки передать? Код программы: .h Код: #ifndef MAINWINDOW_H .cpp Код: #include "mainwindow.h" Скачать прогу можно отсюда (http://bibyte.net/TestYandex.zip) Название: Re: Yandex не отвечает Отправлено: Igore от Август 17, 2011, 16:40 У меня ответил. Qt 4.7.3, windows:
"<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><title>ЯндекÑ</title>..." и т.д. Программа рабочая, разбирайся с окружением. Интернет через прокси? По поводу 302 Цитировать QNetworkRequest::RedirectionTargetAttribute 2 Replies only, type: QVariant::Url (no default) If present, it indicates that the server is redirecting the request to a different URL. The Network Access API does not by default follow redirections: it's up to the application to determine if the requested redirection should be allowed, according to its security policies. The returned URL might be relative. Use QUrl::resolved() to create an absolute URL out of it. http://www.qtforum.org/article/29493/problems-with-qnetworkaccessmanager.htmlНазвание: Re: Yandex не отвечает Отправлено: vbi от Август 17, 2011, 17:41 :o :o :o
та нет. Подключен напрямую к билайн по кабелю Название: Re: Yandex не отвечает Отправлено: vbi от Август 17, 2011, 17:43 У меня 4.7.0 Попробую переустановить...
Название: Re: Yandex не отвечает Отправлено: vbi от Август 17, 2011, 23:06 Поставил последнюю версию, то же самое, запрос пустой, а вот в QWebView страница яндекса нормально загружается. А QNetworkReply возвращает пустую строку, в чем же проблема?
Название: Re: Yandex не отвечает Отправлено: sendevent от Август 18, 2011, 12:22 глянь сниффером - мож че полезное найдешь.
Название: Re: Yandex не отвечает Отправлено: vbi от Август 18, 2011, 15:01 Проверил. Все равно что-то не пойму.
Вот мой запрос: Цитировать No. Time Source Destination Protocol Length Hypertext Transfer Protocol Info 6 0.671130 172.25.0.22 93.158.134.203 HTTP 288 Yes GET / HTTP/1.1 Frame 6: 288 bytes on wire (2304 bits), 288 bytes captured (2304 bits) Ethernet II, Src: Pegatron_ce:67:77 (70:71:bc:ce:67:77), Dst: EdimaxTe_96:43:13 (00:50:fc:96:43:13) Internet Protocol Version 4, Src: 172.25.0.22 (172.25.0.22), Dst: 93.158.134.203 (93.158.134.203) Transmission Control Protocol, Src Port: 53921 (53921), Dst Port: http (80), Seq: 1, Ack: 1, Len: 234 Hypertext Transfer Protocol GET / HTTP/1.1\r\n [Expert Info (Chat/Sequence): GET / HTTP/1.1\r\n] [Message: GET / HTTP/1.1\r\n] [Severity level: Chat] [Group: Sequence] Request Method: GET Request URI: / Request Version: HTTP/1.1 Host: www.yandex.ru\r\n User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; ru; rv:1.9.0.10) Gecko/2009042809 GranParadiso/3.0.10\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n Accept-Encoding: gzip\r\n Accept-Language: uk-UA,en,*\r\n \r\n [Full request URI: http://www.yandex.ru/] А это ответ (пустой): Цитировать No. Time Source Destination Protocol Length Hypertext Transfer Protocol Info 9 0.760279 93.158.134.203 172.25.0.22 HTTP 635 Yes HTTP/1.1 302 Found Frame 9: 635 bytes on wire (5080 bits), 635 bytes captured (5080 bits) Ethernet II, Src: EdimaxTe_96:43:13 (00:50:fc:96:43:13), Dst: Pegatron_ce:67:77 (70:71:bc:ce:67:77) Internet Protocol Version 4, Src: 93.158.134.203 (93.158.134.203), Dst: 172.25.0.22 (172.25.0.22) Transmission Control Protocol, Src Port: http (80), Dst Port: 53921 (53921), Seq: 1, Ack: 235, Len: 581 Hypertext Transfer Protocol HTTP/1.1 302 Found\r\n [Expert Info (Chat/Sequence): HTTP/1.1 302 Found\r\n] [Message: HTTP/1.1 302 Found\r\n] [Severity level: Chat] [Group: Sequence] Request Version: HTTP/1.1 Status Code: 302 Response Phrase: Found Server: nginx\r\n Date: Thu, 18 Aug 2011 11:43:29 GMT\r\n Connection: close\r\n Cache-Control: no-cache,no-store,max-age=0,must-revalidate\r\n Location: http://pass.yandex.ru/?retpath=http%3A%2F%2Fwww.yandex.ua\r\n Content-Length: 0\r\n Expires: Thu, 18 Aug 2011 11:43:29 GMT\r\n Last-Modified: Thu, 18 Aug 2011 11:43:29 GMT\r\n P3P: policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"\r\n Set-Cookie: yandexuid=9523829581313667809; domain=.yandex.ru; path=/; expires=Sun, 15-Aug-2021 11:43:29 GMT\r\n X-XRDS-Location: http://openid.yandex.ru/server_xrds/\r\n \r\n Название: Re: Yandex не отвечает Отправлено: vbi от Август 18, 2011, 15:06 По ходу не находит его чтоли?
Название: Re: Yandex не отвечает Отправлено: Serr500 от Август 18, 2011, 15:16 http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP#302 (http://ru.wikipedia.org/wiki/%D0%A1%D0%BF%D0%B8%D1%81%D0%BE%D0%BA_%D0%BA%D0%BE%D0%B4%D0%BE%D0%B2_%D1%81%D0%BE%D1%81%D1%82%D0%BE%D1%8F%D0%BD%D0%B8%D1%8F_HTTP#302)
Название: Re: Yandex не отвечает Отправлено: vbi от Август 18, 2011, 15:24 Попробовал сделать запрос на "http://www.yandex.ua", Выдает то же:
Цитировать No. Time Source Destination Protocol Length Hypertext Transfer Protocol Info 7 1.065026 87.250.251.3 172.25.0.22 HTTP 605 Yes HTTP/1.1 302 Found Frame 7: 605 bytes on wire (4840 bits), 605 bytes captured (4840 bits) Ethernet II, Src: EdimaxTe_96:43:13 (00:50:fc:96:43:13), Dst: Pegatron_ce:67:77 (70:71:bc:ce:67:77) Internet Protocol Version 4, Src: 87.250.251.3 (87.250.251.3), Dst: 172.25.0.22 (172.25.0.22) Transmission Control Protocol, Src Port: http (80), Dst Port: 54216 (54216), Seq: 1, Ack: 235, Len: 551 Hypertext Transfer Protocol HTTP/1.1 302 Found\r\n [Expert Info (Chat/Sequence): HTTP/1.1 302 Found\r\n] Request Version: HTTP/1.1 Status Code: 302 Response Phrase: Found Server: nginx\r\n Date: Thu, 18 Aug 2011 12:17:34 GMT\r\n Connection: close\r\n Cache-Control: no-cache,no-store,max-age=0,must-revalidate\r\n Location: http://pass.yandex.ua/?retpath=http%3A%2F%2Fwww.yandex.ua%2F\r\n Content-Length: 0\r\n Expires: Thu, 18 Aug 2011 12:17:35 GMT\r\n Last-Modified: Thu, 18 Aug 2011 12:17:35 GMT\r\n P3P: policyref="/w3c/p3p.xml", CP="NON DSP ADM DEV PSD IVDo OUR IND STP PHY PRE NAV UNI"\r\n Set-Cookie: Cookie_check=CheckCookieCheckCookie; domain=.yandex.ua; path=/\r\n X-XRDS-Location: http://openid.yandex.ru/server_xrds/\r\n \r\n Название: Re: Yandex не отвечает Отправлено: vbi от Август 18, 2011, 15:25 Делаю запрос на "http://pass.yandex.ua/?retpath=http%3A%2F%2Fwww.yandex.ua%2F\r\n"
Выдает вот что: Цитировать No. Time Source Destination Protocol Length Hypertext Transfer Protocol Info 6 0.106435 213.180.204.47 172.25.0.22 HTTP 497 Yes HTTP/1.1 302 Moved Temporarily Frame 6: 497 bytes on wire (3976 bits), 497 bytes captured (3976 bits) Ethernet II, Src: EdimaxTe_96:43:13 (00:50:fc:96:43:13), Dst: Pegatron_ce:67:77 (70:71:bc:ce:67:77) Internet Protocol Version 4, Src: 213.180.204.47 (213.180.204.47), Dst: 172.25.0.22 (172.25.0.22) Transmission Control Protocol, Src Port: http (80), Dst Port: 54240 (54240), Seq: 1, Ack: 287, Len: 443 Hypertext Transfer Protocol HTTP/1.1 302 Moved Temporarily\r\n [Expert Info (Chat/Sequence): HTTP/1.1 302 Moved Temporarily\r\n] Request Version: HTTP/1.1 Status Code: 302 Response Phrase: Moved Temporarily Server: nginx\r\n Date: Thu, 18 Aug 2011 12:23:28 GMT\r\n Transfer-Encoding: chunked\r\n Connection: close\r\n Location: http://passport.yandex.ru/passport?trace=pass-f2.8788.ebadretp1&mode=error&error=badretpath&badretpath=http%253A%252F%252Fwww.yandex.ua%252F%0D%0A\r\n Expires: Thu, 01 Jan 1970 00:00:01 GMT\r\n Cache-Control: no-cache\r\n Cache-Control: no-cache, private, no-cache, no-store, must-revalidate, max-age=0\r\n \r\n HTTP chunked response Название: Re: Yandex не отвечает Отправлено: vbi от Август 18, 2011, 15:28 Вот при переходе сюда: "http://passport.yandex.ru/passport?trace=pass-f2.8788.ebadretp1&mode=error&error=badretpath&badretpath=http%253A%252F%252Fwww.yandex.ua%252F%0D%0A\r\n"
наконец то загружается хоть что-то. Но это всего-лиш страница с предупреждением о фишинге... :( Название: Re: Yandex не отвечает Отправлено: Serr500 от Август 18, 2011, 16:52 Хм... Странно... Попробуйте указать referer.
Название: Re: Yandex не отвечает Отправлено: vbi от Август 19, 2011, 09:02 Та не помогает... Что ж буду наверно пользоватся QWebView. Этот компонент сам решает множество проблем.
Название: Re: Yandex не отвечает Отправлено: sendevent от Август 19, 2011, 16:56 Не, ну понятно - не получается, бесит, но зачем яндекс-то ломать было? ;D
(Похоже, из Росси он сейчас не доступен - лежит, и в твиттере народ жалуется, и я попасть не могу). Если серьезно - при переходе на новый локейшн, указанный в первом редиректе, необходимо передавать и установленные куки - практически уверен, проблема в них (из "Set-Cookie: yandexuid=9523829581313667809; domain=.yandex.ru; path=/; expires=Sun, 15-Aug-2021 11:43:29 GMT" - предпоследняя строчка ответа на первый гет). Название: Re: Yandex не отвечает Отправлено: vbi от Август 20, 2011, 10:39 не работает и с куками...
Название: Re: Yandex не отвечает Отправлено: sendevent от Август 31, 2011, 13:30 Да, про куки я тупанул - в первом ответе ведь и без них все норм.
|