|
http запрос: get - получение файла excel | ☑ | ||
---|---|---|---|---|
0
zippygrill
11.02.20
✎
11:16
|
Всем привет!
Возникла необходимость раздать из 1С печатную форму одного объекта. А точнее файл Excel. описал в конфе новый http сервис с методом get. Сформировал печ.форму, сохраняю табл.документ во временный файл xls и далее Двоичные данные из него. Двоичные данные передаю в теле запроса. Если Не ТелоИзДвоичныеДанные = Неопределено Тогда HTTPСервисОтвет.УстановитьТелоИзДвоичныхДанных(ТелоИзДвоичныеДанные); КонецЕсли; Возврат HTTPСервисОтвет; Вопрос в чем - как лучше передать возможные ошибки при формировании и выполнении запроса get принимающей стороне? В заголовках ответа что только не вставлял - на стороне приемника их там тупо нет. Ни моего переопределяемого кода ответа. |
|||
1
zippygrill
11.02.20
✎
11:16
|
*Двоичные данные передаю в тело Ответа*
|
|||
2
zippygrill
11.02.20
✎
11:23
|
например, пытаюсь так передать в Ответ инфу что переданный код <> 10 символам прямо в теле запроса из Строки, вместо из двоичных данных. Но, на стороне приемника, код ответа 400, вместо 500
HTTPСервисОтвет = Новый HTTPСервисОтвет(500); Если Не ТелоИзСтроки = Неопределено Тогда HTTPСервисОтвет.УстановитьТелоИзСтроки(ТелоИзСтроки, КодировкаТекста.UTF8); КонецЕсли; |
|||
3
zippygrill
11.02.20
✎
11:47
|
апну
|
|||
4
arsik
гуру
11.02.20
✎
11:51
|
Чем на той стороне проверял?
Используй fiddler Вот тут все написано https://its.1c.ru/db/metod8dev#content:5756:hdoc |
|||
5
zippygrill
11.02.20
✎
11:54
|
(4) PostMan проверяю, обработкой написанной которая вызывает http ..
|
|||
6
zippygrill
11.02.20
✎
11:58
|
(4) там нет ни одного ответа на мой вопрос!
К тому же, попутно возник еще один: что в Content-Type вставлять если в теле запроса уходит двоичные данные Ответ.Заголовки.Вставить("Content-type", "application/xml"); |
|||
7
Галахад
гуру
11.02.20
✎
12:03
|
Чот не понял. Типа того?
Структура = Новый Структура; Структура.Вставить("Ответ", "Гуд"); Структура.Вставить("Данные", Данные); ЗаписьXML = Новый ЗаписьXML; ЗаписьXML.УстановитьСтроку(); СериализаторXDTO.ЗаписатьXML(ЗаписьXML, Структура); СтрокаXML = ЗаписьXML.Закрыть(); Возврат СтрокаXML; |
|||
8
pechkin
11.02.20
✎
12:04
|
application/octet-stream
|
|||
9
pechkin
11.02.20
✎
12:05
|
||||
10
Garykom
гуру
11.02.20
✎
12:05
|
(0) Возвращая JSON (или XML) внутри которого результат запроса файла и ссылка на скачивание (или нет ссылки если ошибка).
По ссылке другим запросом скачают файл. |
|||
11
Garykom
гуру
11.02.20
✎
12:07
|
(10)+ Короче два метода get пропиши, один запрашивает формирование xls и возвращает ссылку а второй по ссылке отдает xls.
Можно сделать срок годности xls чтобы для повторных запросов почти в одно время старый отдавал а не формировал заново. |
|||
12
zippygrill
11.02.20
✎
12:08
|
(7) если бы в xml...
|
|||
13
zippygrill
11.02.20
✎
12:09
|
(8) спс
|
|||
14
Галахад
гуру
11.02.20
✎
12:16
|
(12) А чем xml не подходит?
|
|||
15
pechkin
11.02.20
✎
12:20
|
(11) два запроса тут явно лишнее
|
|||
16
zippygrill
11.02.20
✎
12:26
|
(14) на стороне приемника некая оболочка из всяких ярлыков и нужно отдать сразу xls для просмотра
|
|||
17
Garykom
гуру
11.02.20
✎
12:45
|
(16) Тогда все проще, в случае ошибок создавай ошибочный xls (где внутри вместо данных написаны ошибки) и отдавай его
|
|||
18
pechkin
11.02.20
✎
13:25
|
(17) ошибки можно и хттп ответом выдавать.
какие то ты велосипеды изобретаешь |
|||
19
ДенисЧ
11.02.20
✎
13:27
|
(18) @нужно отдать сразу xls для просмотра@
Код возврата но пасаран... |
|||
20
pechkin
11.02.20
✎
13:29
|
(19) одно другому не противоречит.
как то же ошибки все равно должны обрабатыватья. например 404 |
|||
21
zippygrill
11.02.20
✎
13:55
|
(17) так и поступил. Вроде и код ошибки тот что надо возвращается..
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |