Имя: Пароль:
1C
 
Выполнение HTTP-запроса
, ,
0 yaroshenko_p
 
29.08.17
17:02
Доброго времени суток!

У меня возникла проблема с запуском скрипта на HTTP-сервере из 1С.
Использую примерно такой код (на простом примере):

ИмяСервераHTTP = "//Адрес сервера";
ПортHTTP = //Порт;
Соединение = Новый HTTPСоединение(ИмяСервераHTTP, ПортHTTP,,,,60,);
    
Попытка
    ИмяВыходногоФайла = ПолучитьимяВременногоФайла("txt");
    Запрос = Новый HTTPЗапрос;
    Запрос.АдресРесурса = "/resurs/test.php";
    Ответ = Соединение.Получить(Запрос, имяВыходногоФайла);
                
    Если Ответ.КодСостояния <> 200 Тогда
        Сообщить("Ошибка");
    Иначе
        Сообщить("Удача");
    КонецЕсли;
                
Исключение
    Сообщить("Ошибка запроса! " + ОписаниеОшибки());
КонецПопытки;

Соединение устанавливается, но запрос не проходит - вылетает с кодом соединения 404 (типа объект не найден).
При этом, если в адресной строке интернет-браузера набрать
//Адрес сервера/resurs/test.php

то в браузере скрипт отрабатывается (печатается сообщение)
А из процедуры 1С скрипт не выполняется.

Подскажите, пожалуйста, в чем может быть проблема?
1 Lexey_
 
29.08.17
17:08
(0) в ИмяСервераHTTP, например
2 _Дайвер_
 
29.08.17
17:09
(0) Вместо www пиши http:\\
3 dezss
 
29.08.17
17:10
Чую, что адрес сервера не начинается с http...
Более того, может там тупо шара указана, судя по
"//Адрес сервера/resurs/test.php"
4 yaroshenko_p
 
29.08.17
17:12
Господа, я забыл написать, что Адрес сервера - это IP-адрес
5 _Дайвер_
 
29.08.17
17:14
(4) перед IP вставь, http:\\
6 Lexey_
 
29.08.17
17:14
(4) весь код выложи
7 Lexey_
 
29.08.17
17:15
(5) не надо никаких http
8 yaroshenko_p
 
29.08.17
17:18
ИмяСервераHTTP = "188.188.188.188";

ПортHTTP = 8088;

Соединение = Новый HTTPСоединение(ИмяСервераHTTP, ПортHTTP,,,,60,);
    
Попытка
    ИмяВыходногоФайла = ПолучитьимяВременногоФайла("txt");
    Запрос = Новый HTTPЗапрос;
    Запрос.АдресРесурса = "/resurs/test.php";
    Ответ = Соединение.Получить(Запрос, имяВыходногоФайла);
                
    Если Ответ.КодСостояния <> 200 Тогда
        Сообщить("Ошибка");
    Иначе
        Сообщить("Удача");
    КонецЕсли;
                
Исключение
    Сообщить("Ошибка запроса! " + ОписаниеОшибки());
КонецПопытки;

IP-адрес сервера я поменял - увы, конфиденциальность
9 dezss
 
29.08.17
17:19
а порт телнетится?
или хотя б через браузер на порт заходится?
10 _Дайвер_
 
29.08.17
17:19
Поддерживаются следующие протоколы: HTTP 1.0 и HTTP 1.1. Для защиты соединения может быть использован протокол TLS 1.2.
11 Lexey_
 
29.08.17
17:21
(8) протокол не https случайно?
12 yaroshenko_p
 
29.08.17
17:30
(9) Через адресную строку браузера скрипт
//188.188.188.188/resurs/test.php
вызывается и отрабатывается

(8) Соединение не защищенное
13 Lexey_
 
29.08.17
17:34
//188.188.188.188/resurs/test.php
и
ИмяСервераHTTP = "188.188.188.188";
ПортHTTP = 8088;

отличаются портом
14 sandal_r
 
29.08.17
17:34
попробуйте вставить user-agent в заголовок запроса
вот такой, к примеру

User-Agent: Mozilla/5.0 (Windows NT 6.3; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.101 Safari/537.36
15 yaroshenko_p
 
29.08.17
17:37
(9) А вот на порт через браузер не заходится - NOT FOUND
16 yaroshenko_p
 
29.08.17
17:43
(14) Попробовал добавить заголовок в запрос - не помогло
17 Юрий Лазаренко
 
29.08.17
18:22
(12) А где в //188.188.188.188/resurs/test.php  указан порт 8088?
18 yaroshenko_p
 
29.08.17
18:46
(17) Юрий, спасибо! Я попробовал вообще обойтись без указания порта:

Соединение = Новый HTTPСоединение(ИмяСервераHTTP,,,,,60,);

И скрипт выполнился!
19 Lexey_
 
29.08.17
18:48
(18) о чем и говорилось в (13)
20 yaroshenko_p
 
29.08.17
18:59
Господа, спасибо вам огромное!