Имя: Пароль:
1C
1С v8
Ошибка при работе с HTTPСоединением
0 unf13
 
05.05.17
06:20
Добрый день,

на компе установлен веб-сервер апач 2.4, в корневом каталоге локального сайта есть скрипт index.php, который прекрасно отрабатывает, если в браузере набрать: 127.0.0.1 или localhost или 127.0.0.1/index.php или localhost/index.php.

код в 1С:

<code>

ФайлРезультата = ПолучитьИмяВременногоФайла("json"); // путь к временному системному файлу, куда будет записан ответ сервера
    
ПараметрыСоединения = Новый Структура;
ПараметрыСоединения.Вставить("Сервер","127.0.0.1");
ПараметрыСоединения.Вставить("Порт","80");
    
    
HTTP = Новый HTTPСоединение(ПараметрыСоединения.Сервер,ПараметрыСоединения.Порт);
            HTTP.Получить("127.0.0.1/index.php",ФайлРезультата);
    
</code>

приводит к ошибке:

<code>
{Форма.Форма.Форма(28)}: Ошибка при вызове метода контекста (Получить)
        HTTP.Получить(
по причине:
Файл не обнаружен '127.0.0.1/index.php'
по причине:
Ошибка работы с Интернет:  ресурс не найден (404). <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">;
<html xmlns="http://www.w3.org/1999/xhtml">;
<head>
<title>Подробные данные об ошибке IIS 8.5 - 404.0 - Not Found</title>
<style type="text/css">

</code>


Смущает, что IIS здесь в ошибке мелькает к тому же, хотя он не установлен вроде,причем здесь он вообще? Все варианты строки адреса, которые отрабатывают в браузере приводят к этой ошибке. Может кто-то подскажет, куда копать?
1 mehfk
 
05.05.17
06:31
Сделай так:
HTTP.Получить("/index.php",ФайлРезультата);
2 mehfk
 
05.05.17
06:32
И не забудь занести 500 р в кассу мисты.
3 unf13
 
05.05.17
06:44
(1) к сожалению, вот все вот эти варианты строки адреса приводят к той же ошибке:

"127.0.0.1"
"localhost"
"127.0.0.1/index.php"
"localhost/index.php"
"/index.php"

При этом в браузере отрабатывают все варианты, кроме последнего (т.к. в браузере надо полный путь указывать, что логично).
4 unf13
 
05.05.17
07:06
В общем, так я и не понял, в чем прикол, но работоспособности удалось добиться, подставив в качестве IP-адреса сервера вместо 127.0.0.1 адрес реального айпишника компа в локальной сети. Тогда скрипт отрабатывает.

в строке адреса при этом указал просто:

HTTP.Получить("/index.php",ФайлРезультата);
5 GenAcid
 
05.05.17
07:26
Клиент-сервер? Похоже на стороне сервера код отрабатывает, там 127.0.0.1 это сам сервер.
6 Юрий Лазаренко
 
05.05.17
07:51
(5) Именно так.
2 + 2 = 3.9999999999999999999999999999999...