Post-запрос не отправляет на обычных формах
Этот код на управляемых формах отправляет файл на сайт, а на обычных формах возвращает код ошибки 302.
В чем может проблема?
В чем может проблема?
Каталог = "C:\Downloads";
Маска = "*.csv";
Сервер = "sait-ru.spot2d.com";
Адрес = "/upload/auto";
ID = "123";
Пользователь = "login";
Пароль = "parol";
ВидФайла = "cancellations";
ИмяФайла = "C:\Downloads\cancellations.csv";
Boundary = "bf8c624ec6cb4516979bc6ec133fcb94";
//ФайлДляПередачи = ДополнительныеПараметры.ФайлДляПередачи;
ФайлДляПередачи = Новый ТекстовыйДокумент;
Соединение = Новый HTTPСоединение(Сервер);
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type","multipart/form-data; boundary="+Boundary);
HTTPЗапрос = Новый HTTPЗапрос(Адрес,Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки(ФайлДляПередачи.ПолучитьТекст());
Ответ = Соединение.ОтправитьДляОбработки(HTTPЗапрос);
Соединение = Неопределено;
СтрокаОтвета = Ответ.ПолучитьТелоКакСтроку();
Сообщить("Передача файла " + ВидФайла + " (" + ИмяФайла + ")" + " ответ " + СтрокаОтвета + " Код состояния:" + Ответ.КодСостояния);
ПоказатьПо теме из базы знаний
- Обмен с интернет-магазином на платформе DOCPART
- Одна ККТ для розничного магазина и Интернет-сайта
- Как мы интегрировали свою систему управления разработкой со Slack. Инструменты, возможности, процесс разработки
- НеБезопасный прикладной программный интерфейс сервера
- Переход на Clickhouse для анализа метрик
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) могу предположить, что приведенный код отличается от кода, который применяется в УФ. Судя по коду ответа 302, это перенаправление и (Хайли лайкли) нужно запрос отправлять по https, а не http. А в 8.2 защищенное соединение не работает так как в 8.3 (поддерживаются не все версии TLS).
Попробуйте использовать сторонние программы. Для примера:
Новый COMОбъект("MSXML2.XMLHTTP.6.0")
Попробуйте использовать сторонние программы. Для примера:
Новый COMОбъект("MSXML2.XMLHTTP.6.0")
(10)Скажу банальность. Нет никакой мистики в 1С.
Скорее всего у вас внешняя обработка, значит код размещен на формах обработки, один на обычной, другой на управляемой.
Если в управляемом приложении все работает, а в обычном нет, значит 99% проблема в вас (в коде), 1% оставим на платформу.
Раз сервер возвращает ответ (даже если это ответ с кодом 302), значит проблема в вас 99.9%.
Код 302, как уже сказали - означает переадресацию, то есть вы не тот адрес указываете/ошибка в адресе.
Чтобы посмотреть чем отличаются отправляемые сообщения в обычном и управляемом приложении - установите Fiddler, выполните отправку и сравните сообщения.
Скорее всего у вас внешняя обработка, значит код размещен на формах обработки, один на обычной, другой на управляемой.
Если в управляемом приложении все работает, а в обычном нет, значит 99% проблема в вас (в коде), 1% оставим на платформу.
Раз сервер возвращает ответ (даже если это ответ с кодом 302), значит проблема в вас 99.9%.
Код 302, как уже сказали - означает переадресацию, то есть вы не тот адрес указываете/ошибка в адресе.
Чтобы посмотреть чем отличаются отправляемые сообщения в обычном и управляемом приложении - установите Fiddler, выполните отправку и сравните сообщения.
ФайлДляПередачи = Новый ТекстовыйДокумент;
Соединение = Новый HTTPСоединение(Сервер);
Заголовки = Новый Соответствие();
Заголовки.Вставить("Content-Type","multipart/form-data; boundary="+Boundary);
HTTPЗапрос = Новый HTTPЗапрос(Адрес,Заголовки);
HTTPЗапрос.УстановитьТелоИзСтроки([IS-QUOTE]ФайлДляПередачи.ПолучитьТекст()
[/IS-QUOTE]
создал текстовый документ, ничего туда не написал и получаешь оттуда текст
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот