Имя: Пароль:
1C
1С v8
Запросы к сайту из под 1С8
0 lamme
 
23.03.16
22:06
Есть сайт. есть 2 скрипта с параметрами.

Запрос1
тартовыйURL ="mysite.ru";
    Прокси = Новый ИнтернетПрокси();
    Прокси.Установить("https",СокрЛП(Константы.ProxyСервер.Получить()),Константы.ProxyПорт.Получить());
    Прокси.Пользователь = СокрЛП(Константы.ProxyПользователь.Получить());
    Прокси.Пароль       = СокрЛП(Константы.ProxyПароль.Получить());
    
    SSL = Новый ЗащищенноеСоединениеOpenSSL(Новый СертификатКлиентаWindows(),Новый СертификатыУдостоверяющихЦентровWindows());

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

    
    
    
    ФайлРезультата = ПолучитьИмяВременногоФайла("xml");
    
    
    Адрес = "/scripts/name/?id=123";
    сообщить(СтартовыйURL+Адрес);
    Попытка
         HTTP.Получить(Адрес, ФайлРезультата );
        сообщить("файл1- "+ФайлРезультата ) ;
        Сообщить("Данные о заявках с сервера получены");
    Исключение
         Сообщить("Ошибка получения данных о заявках с сервера : " + ОписаниеОшибки());
        
    КонецПопытки;


Сразу же выполняется запрос2


Адрес = "/scripts/name2/?idm=01.01.2016";
    сообщить(СтартовыйURL+Адрес);
    Попытка
         HTTP.Получить(Адрес, ФайлРезультата );
        сообщить("файл2- "+ФайлРезультата ) ;
        Сообщить("Данные о заявках с сервера получены");
    Исключение
         Сообщить("Ошибка получения данных о заявках с сервера : " + ОписаниеОшибки());
        
    КонецПопытки;

-------------
скрипт1 - выдает
<html>
<head><title>301 Moved Permanently</title></head>
<body bgcolor="white">
<center><h1>301 Moved Permanently</h1></center>
<hr><center>nginx/1.8.0</center>
</body>
</html>

срипт2 -выдает то что надо. работает.

---------------

если я в браузере вставляю запросы - те
mysite.ru/scripts/name/?id=123
и
/scripts/name2/?idm=01.01.2016
то сам браузер делает строку такую:

https://www.mysite.ru/scripts/name/?id=123
второй
https://mysite.ru/scripts/name2/?idm=01.01.2016


(разница в www - в первом скрипте)

что со стороны сервера не так настроено в первом скрипте
или
что можно сделать со стороны 1С - чтобы заработало?
Вариант с
тартовыйURL ="http://www.mysite.ru";; - не работает.
1 Записьдампа
 
23.03.16
22:21
Сейчас появится Serginio1 и расскажет тебе, что все это надо делать на .net =)
2 Юрий Лазаренко
 
23.03.16
22:23
(0) В первом случае идет 301-й редирект на страницу с "www". Как-то мы это лечили, но дело было давно, сходу не вспомню как.
3 lamme
 
23.03.16
22:24
(2)
ЭТО И ПОНЯТНО ЧТО ИДЕТ РЕДИРЕКТ.
4 lamme
 
23.03.16
22:24
пардон
5 Записьдампа
 
23.03.16
22:25
(2) Обращались по адресу из заголовка location? Да ну нафиг, быть нее может =)
6 Юрий Лазаренко
 
23.03.16
22:26
Как вариант - использовать ЧтениеHTML и в качестве источника указать не имя файла на локальном компе, а URL.
7 lamme
 
23.03.16
22:27
(6)
не понял
а пример?
8 Юрий Лазаренко
 
23.03.16
22:28
или WinHttp.WinHttpRequest, вроде что-то из них помогло нам в свое время в подобной ситуации
9 Записьдампа
 
23.03.16
22:29
Для простого get запроса - СкопироватьФайл тоже вполне понимает http схему и умеет ходить по редиректам
10 lamme
 
23.03.16
22:29
а почему тогда скрипт1 - корректно работает с https//mysite.ru
?
это же что то на сервере настроено хитро?
11 Юрий Лазаренко
 
23.03.16
22:29
(7) Пример есть в СП:
ЧтениеHTML = Новый ЧтениеHTML;
ЧтениеHTML.ОткрытьФайл("c:/docs/data.xml");

Вот вместо "c:/docs/data.xml" указать нужный УРЛ.
12 lamme
 
23.03.16
22:30
(11)
ок
попробую
13 Serginio1
 
23.03.16
22:40
(1) Ты уже за меня пропагандируешь. Спасибо.
http://its.1c.ru/db/metod8dev#content:5574:hdoc:_top
14 Записьдампа
 
23.03.16
22:47
(13) Мы тебя ждали 20 минут назад, где тебя носило? =)
15 Serginio1
 
23.03.16
23:09
(14) Да и заходить не хотел. Случайно ...
16 Сергиус
 
24.03.16
00:29
(0)

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

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

Попробуй подставить SSL в HTTPСоединение:

HTTP = Новый HTTPСоединение(СтартовыйURL,,,, Прокси,,SSL );
17 Serginio1
 
24.03.16
09:59
(0) А вообще фиддлер в руки и сравнивай запросы из браузера и свои