Имя: Пароль:
1C
 
HTTPОтвет. 301 Moved permanently. Куда ведут следы?
0 ВаликТР
 
15.07.15
11:11
Пробовал GET. Получаю 301. Думаю, постом большего не узнаю. А как все-таки получить HTTPЗапрос'ом или иным способом страницу "hotline.ua/foto/fotoapparaty". Дайте, пожалуйста, пример!!!
1 eklmn
 
гуру
15.07.15
11:12
301 это редирект
2 ВаликТР
 
15.07.15
11:14
(1) я так понимаю, след оборван? Может неправильны заголовки для запроса?
3 Garikk
 
15.07.15
11:15
(2) в ответе 301 должен быть указан новый адрес страницы
4 ВаликТР
 
15.07.15
11:19
вот что выдает ответ
Значение элемента    Тип элемента    Ключ    Значение        
КлючИЗначение    КлючИЗначение    "Date"    "Wed, 15 Jul 2015 08:17:10 GMT"        
КлючИЗначение    КлючИЗначение    "Content-Type"    "text/html"        
КлючИЗначение    КлючИЗначение    "Connection"    "keep-alive"        
КлючИЗначение    КлючИЗначение    "Content-Length"    "178"        
КлючИЗначение    КлючИЗначение    "Location"    "http://hotline.ua/foto/fotoapparaty";        
КлючИЗначение    КлючИЗначение    "Server"    "nginx"        

где тут адрес редиректа?
5 Garikk
 
15.07.15
11:21
надо через отладчик смотреть, этот сайт действительно первым ответом 301 выдаёт
6 Garikk
 
15.07.15
11:22
веб-отладчик, не 1С
7 Garikk
 
15.07.15
11:23
8 Garikk
 
15.07.15
11:23
так адрес писать надо
9 Garikk
 
15.07.15
11:25
со слешем в конце
10 ВаликТР
 
15.07.15
11:36
Так...

Заголовки = Новый Соответствие();
Заголовки.Вставить("host", "http://www.hotline.ua";);
HTTPЗапрос = Новый HTTPЗапрос("foto/fotoapparaty/", Заголовки);
HTTPОтвет  = HTTPСоединение.Получить(HTTPЗапрос);
... выдает 301

а так...

Заголовки = Новый Соответствие();
Заголовки.Вставить("host", "http://hotline.ua";);
HTTPЗапрос = Новый HTTPЗапрос("/foto/fotoapparaty/", Заголовки);
HTTPОтвет  = HTTPСоединение.Получить(HTTPЗапрос);

... выдает 400
А где же 200 :-((
11 ВаликТР
 
15.07.15
11:37
вернее в первом случае "http://www.hotline.ua";
12 ВаликТР
 
15.07.15
11:38
... без http (форум сам дописывает)
13 oleg_km
 
15.07.15
11:40
301 Moved Permanently — запрошенный документ был окончательно перенесен на новый URI, указанный в поле Location заголовка. Некоторые клиенты некорректно ведут себя при обработке данного кода. Появился в HTTP/1.0.
14 ВаликТР
 
15.07.15
11:45
Решено!
Правильное решения для данного сайта

Заголовки = Новый Соответствие();
Заголовки.Вставить("host", "hotline.ua");
HTTPЗапрос = Новый HTTPЗапрос("foto/fotoapparaty/", Заголовки);
HTTPОтвет  = HTTPСоединение.Получить(HTTPЗапрос);

Всем спасибо за помощь!
15 Asmody
 
15.07.15
11:48
Инструменты разработчика в Хроме, закладка Network, галка Preserve log, и вбивай нужный адрес. Оно тебе всю подноготную выдаст.
16 oleg_km
 
15.07.15
12:17
(14) Странно, вот эту строчку

Заголовки.Вставить("host", "hotline.ua");

1С должен сам делать, по крайней мере все нормальные клиенты ее сами к запросу добавляют.
17 Serginio1
 
15.07.15
12:58
(14) А почему не по старинке

HTTPСоединение = Новый HTTPСоединение("hotline.ua");
HTTPЗапрос = Новый HTTPЗапрос("foto/fotoapparaty/");
HTTPОтвет  = HTTPСоединение.Получить(HTTPЗапрос);
  Сообщить(HTTPОтвет.ПолучитьТелоКакСтроку());
18 Dunemaster
 
15.07.15
14:15
19 ВаликТР
 
15.07.15
14:55
(18) Ох, как конкретно!
Спасибо. Пригодится однозначно!