Имя: Пароль:
1C
 
Получить данные с сайта... В ответе 301 Moved Permanently
,
0 lamme
 
25.04.18
16:11
Добрый день
есть ссылка типа
https://логин:пароль@www.site.ru/export/goods_receipt.html?fn=exportTable&tname=receipts&updatePeriod=604800&renderType=XML&target_charset=utf-8


пытаюсь получить данные (ответ в виде хмл)



СтартовыйURL =логин+":"+пароль+"@http://www.site.ru";;


    SSL = Новый ЗащищенноеСоединениеOpenSSL(
            Новый СертификатКлиентаWindows(),
            Новый СертификатыУдостоверяющихЦентровWindows());

    
    Попытка
        //HTTP = Новый HTTPСоединение(СтартовыйURL,,,, Прокси,, SSL);
        HTTP = Новый HTTPСоединение(СтартовыйURL,,,, ,, );
    Исключение
        Сообщить("Ошибка подключения: " + ОписаниеОшибки());
           //Возврат "Error. Ошибка подключения: " +ОписаниеОшибки();
    КонецПопытки;

    // HTTP.ЗащищенноеСоединение=истина;
    
    // посылаем запрос                              
    ФайлРезультата = ПолучитьИмяВременногоФайла("json");
    
            
    Адрес = "/export/goods_receipt.html?fn=exportTable&tname=receipts&updatePeriod=604800&renderType=XML&target_charset=utf-8";
    
    Попытка
         HTTP.Получить(Адрес, ФайлРезультата );
        Сообщить("Данные о заявках с сервера получены");
    Исключение
         Сообщить("Ошибка получения данных о заявках с сервера : " + ОписаниеОшибки());
        
    КонецПопытки;



а в ответ в фале ФайлРезультата  приходит
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>


те параметр не передан

собственно - вопрос возникает - а праивльно ли вообще передается запрос ...
1 Cool_Profi
 
25.04.18
16:12
поставь фидлер и посмотри...
2 Волшебник
 
25.04.18
16:12
Тебе же написали
301 Moved Permanently
3 Fragster
 
гуру
25.04.18
16:12
там в ответе в заголовках есть адрес, куда оно moved permanently
4 Йохохо
 
25.04.18
16:13
СтартовыйURL =логин+":"+пароль+"@http://www.site.ru";;; очепятка? авторизация до протокола
5 Fragster
 
гуру
25.04.18
16:14
причем пожелание у 1с автоматически обрабатывать ответ с заголовком 301 (как браузеры, консольные утилиты типа curl/wget) "записано"
6 lamme
 
25.04.18
16:14
(3)
ответ весь
7 VS-1976
 
25.04.18
16:15
Нет такой страницы куда ты обращаешься
8 lamme
 
25.04.18
16:15
(4)
нет. именно так
9 lamme
 
25.04.18
16:16
как я понимаю
если в браузере вставляю ссылку - то происходит редирект на другой сайт.

а 1С такого не умеет делать ?
10 Fragster
 
гуру
25.04.18
16:18
(9) автоматом - нет, только руками
11 lamme
 
25.04.18
16:23
а как узнать - куда оно редирект ?
12 dezss
 
25.04.18
16:23
(6) (11) посмотреть заголовок location в ответе.
Тебе уже в (3) об этом написали.
13 dezss
 
25.04.18
16:24
(12) +
HTTP.Получить(Адрес, ФайлРезультата );
замени на
ответ = HTTP.Получить(Адрес);

в "ответ" будут заголовки.
14 lamme
 
25.04.18
16:25
12
вот весь ответ
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx</center>
</body>
</html>
15 lamme
 
25.04.18
16:25
13
ок
сек
16 Lexey_
 
25.04.18
16:26
(14) это не ответ, это тело
17 lamme
 
25.04.18
16:27
18 dezss
 
25.04.18
16:28
(17) да
19 lamme
 
25.04.18
16:29
беда ...
в той ссылке нет вообще логин-паролей ..

зачем тогда первоначально делать хрень с логин-паролем
чтобы в дальнейшем был редирект на открытый ресурс ?
20 dezss
 
25.04.18
16:31
(19) ну это ты спрашивай у тех, кто этот сервис делал...
иногда куки используют при редиректе, еще что-то такое...
а может тебе и к той ссылке нужен логин-пароль...

это веб, вариантов масса)
21 oleg_km
 
25.04.18
16:31
(19) Так и может когда он выдавал тебе редирект уже тебя и авторизовал. Там в куках может уже есть какой-нибудь токен сессии. Смотри внимательно в фиддлере
22 lamme
 
25.04.18
16:32
понял ...
23 dezss
 
25.04.18
16:33
(20) +
у тебя в (0) написано:
есть ссылка типа
https://логин:пароль@www.site.ru/export/goods_receipt.html?fn=exportTable&tname=receipts&updatePeriod=604800&renderType=XML&target_charset=utf-8

А ниже:
СтартовыйURL =логин+":"+пароль+"@http://www.site.ru";;;

чета строки разные, не находишь?
24 lamme
 
25.04.18
16:35
(23)
нет. не нахожу.
а .нахожу
25 lamme
 
25.04.18
16:37
это моя ошибка при написании вопроса на мисте
в коде - СтартовыйURL =логин+":"+пароль+"@http://www.stutzen.ru";;
26 lamme
 
25.04.18
16:50
короче ..
все решилось проще ...

Соединение.Получить(ИмяЗапроса, ИмяВременногоФайлаДанныхДокументовПоступлений);

и все оно работает
27 dezss
 
25.04.18
16:51
(26) ага...я чет сразу не обратил внимания, что у тебя запроса нет