http сервис в браузере json открывается нормально, в 1С выдает ошибку.

1. Amadeus8 22.06.22 10:20 Сейчас в теме
Здравствуйте, коллеги! Собственно, сабж. Создал http, опубликовал, все как полагается. Сервер IIS, платформа 8.3.20.1838. В браузере сервис нормально открывает json, а при попытке получить ответ в 1с выдает ошибку. Ответ получаю вот так:

        Ответ      = Соединение.Получить(Запрос);
	ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
	
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТелоОтвета);
	
	Данные = ПрочитатьJSON(ЧтениеJSON, Ложь);


Ошибка выглядит вот так:

<!DO CTYPE html>
<ht ml>
<head>
<title>Ошибка выполнения</title>
<met a name="viewport" content="width=device-width" />
<st yle>
body {font-family:"Verdana";font-weight:normal;font-size: .7em;color:black;}
p {font-family:"Verdana";font-weight:normal;color:black;margin-top: -5px}
b {font-family:"Verdana";font-weight:bold;color:black;margin-top: -5px}
H1 { font-family:"Verdana";font-weight:normal;font-size:18pt;color:red }
H2 { font-family:"Verdana";font-weight:normal;font-size:14pt;color:maroon }
pre {font-family:"Consolas","Lucida Console",Monospace;font-size:11pt;margin:0;padding:0.5em;line-height:14pt}
.marker {font-weight: bold; color: black;text-decoration: none;}
.version {color: gray;}
.error {margin-bottom: 10px;}
.expandable { text-decoration:underline; font-weight:bold; color:navy; cursor:hand; }
@media screen and (max-width: 639px) {
pre { width: 440px; overflow: auto; white-space: pre-wrap; word-wrap: break-word; }
}
@media screen and (max-width: 479px) {
pre { width: 280px; }
}
</style>
</head>

<body bgcolor="white">

<span><H1>Ошибка сервера в приложении '/'.<hr width=100% size=1 color=silver></H1>

<h2> Ошибка выполнения </h2></span>

<font face="Arial, Helvetica, Geneva, SunSans-Regular, sans-serif ">

Описание: На сервере возникла ошибка приложения. Текущая пользовательская настройка ошибок для этого приложения не позволяет удаленно просматривать сведения об ошибке данного приложения (из соображений безопасности). Однако, сведения можно просматривать в браузерах, запущенных на локальном сервере.




Сведения: Для разрешения просмотра сведений данного сообщения об ошибке на локальном сервере создайте тег <customErrors> в файле конфигурации "web.config", который находится в корневом каталоге текущего веб-приложения. В теге <customErrors> следует задать атрибут "mode" со значением "Off".



<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<pre>

<!-- Файл конфигурации Web.Config -->

<configuration>
    <system.web>
        <customErrors mode="Off"/>
    </system.web>
</configuration></pre>
Показать


</td>
</tr>
</table>




Примечания: Отображаемую в данный момент страницу ошибок можно заменить на пользовательскую страницу ошибок, изменив атрибут "defaultRedirect" тега конфигурации <customErrors> приложения таким образом, чтобы он содержал URL-адрес пользовательской страницы ошибок.



<table width=100% bgcolor="#ffffcc">
<tr>
<td>
<pre>

<!-- Файл конфигурации Web.Config -->

<configuration>
    <system.web>
        <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/>
    </system.web>
</configuration></pre>
Показать


</td>
</tr>
</table>




</body>
</html>
Найденные решения
9. Sashares 35 23.06.22 11:47 Сейчас в теме
(8)
АдресРесурса

Не верный.

/base/hs/attendance_info/%1/%2
- вот это адрес ресурса
Amadeus8; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 22.06.22 12:14 Сейчас в теме
(1) Может не Get, а Post? Тогда ОтправитьДляОбработки
4. Amadeus8 22.06.22 12:16 Сейчас в теме
(2) в сервисе использую только get-запрос
5. RustamZz 22.06.22 12:59 Сейчас в теме
(4) Ну раз мы кода не видим ни хттп-сервиса, ни запроса, дальше разбирайтесь самостоятельно.
3. Amadeus8 22.06.22 12:14 Сейчас в теме
Продолжаю погружаться в дебри. Отредактировал web.config для просмотра ошибки, теперь выдает такую строчку:
[HttpException]: Обнаружено потенциально опасное значение Request.Path, полученное от клиента (:).
в System.Web.HttpRequest.ValidateInputIfRequiredByConfig()
в System.Web.HttpApplication.PipelineStepManager.ValidateHelper(HttpContext context)
6. Amadeus8 23.06.22 10:57 Сейчас в теме
Попробовал все из этого топика https://forum.infostart.ru/forum9/topic72212/. Не помогло. Поставил апач, Ситуация та же - в браузере все нормально открывается, из 1с: 403 You don't have permission to access this resource. В логах Apache: The given path is misformatted or contained invalid characters: [client ::1:54484] AH00127: Cannot map GET /http://test/base/hs/attendance_info/20220501/20220502
7. Doom2w 27 23.06.22 11:11 Сейчас в теме
1) в браузере json открывается нормально (с) Скрины нормального ответа и строки в браузере.
2) Код подключения из 1С.
3) http-сервис сделан в 1С или сторонний?
8. Amadeus8 23.06.22 11:34 Сейчас в теме
(7)
2) Код подключения из 1С.

Код в 1С:
&НаКлиенте
Процедура Команда1(Команда)
	ШаблонВызова = "http://test/base/hs/attendance_info/%1/%2";
	АдресРесурса =  СтрШаблон(ШаблонВызова, Формат(ДатаНачала,  "ДФ=yyyyMMdd") , Формат(ДатаОкончания, "ДФ=yyyyMMdd")); 
	Сообщить(АдресРесурса);
	
	Адрес = "test";
 	Пользователь = "Admin";
 	Пароль= "12345";
 	Порт = 81; 
	
	
	HTTPСоединение = Новый HTTPСоединение(Адрес, Порт, Пользователь, Пароль);
		
	Запрос = Новый HTTPЗапрос(АдресРесурса);
	Ответ      = HTTPСоединение.Получить(Запрос);
	
	ТелоОтвета = Ответ.ПолучитьТелоКакСтроку();
	Сообщить(ТелоОтвета);
	ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(ТелоОтвета);
	
	Данные = ПрочитатьJSON(ЧтениеJSON, Ложь); 
	
КонецПроцедуры
Показать


3) http-сервис сделан в 1С или сторонний?

Да, сервис в 1С сделан.
Прикрепленные файлы:
9. Sashares 35 23.06.22 11:47 Сейчас в теме
(8)
АдресРесурса

Не верный.

/base/hs/attendance_info/%1/%2
- вот это адрес ресурса
Amadeus8; +1 Ответить
11. Amadeus8 23.06.22 12:11 Сейчас в теме
(9) спасибо, добрый человек! А столько страданий...)
10. ignorant 23.06.22 11:56 Сейчас в теме
(8)
Порт = 81;
попробуй убрать
12. Amadeus8 23.06.22 12:11 Сейчас в теме
(10) порт специально такой, на 80 IIS смотрит
13. user823999 21 23.06.22 12:28 Сейчас в теме
(8) может, я не понимаю чего, но, по-моему "ПолучитьТелоКакСтроку()" не работает на тонком клиенте:
HTTPСервисОтвет (HTTPServiceResponse)
ПолучитьТелоКакСтроку (GetBodyAsString)
Синтаксис:

ПолучитьТелоКакСтроку() 
Возвращаемое значение:

Тип: Строка. 

Описание:

Возвращает строку, которая будет записана в тело HTTP-ответа.

Доступность: 

Сервер, толстый клиент. 
Показать


Может, попробовать читать на сервере
14. Sashares 35 23.06.22 12:34 Сейчас в теме
(13)
может, я не понимаю чего, но, по-моему "ПолучитьТелоКакСтроку()" не работает на тонком клиенте:

Не то смотрите.

HTTPОтвет (HTTPResponse)
ПолучитьТелоКакСтроку (GetBodyAsString)
Синтаксис:
ПолучитьТелоКакСтроку(<Кодировка>)

Описание:
Получает тело объекта как строку.
Доступность:
Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.
Показать
15. Doom2w 27 23.06.22 12:46 Сейчас в теме
(13) В чем сейчас проблема?
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот