Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

MongaDB выходит ошибка 406

MongaDB выходит ошибка 406
Я
   redbull4561
 
20.09.17 - 13:02
Делаю сохранение файлов в монгоДБ с помощью RESTHeart  из 1С 

Остановился на том что не могу записать данные методом PUT  возвращает ошибку 406
Может кто сталкивался и может подсказать

Соединение     = Новый HTTPСоединение("localhost", 8080, "Логин", "Пароль",,    60);
    ЧтениеJSON = Новый ЧтениеJSON;
    ЗаписьJSON = Новый ЗаписьJSON; 
    ЗаголовокЗапроса = Новый Соответствие;
    ЗаголовокЗапроса.Вставить("Content-Type", "application/json");
    ЗаголовокЗапроса.Вставить("Authorization", "Basic " + ХэшАвторизации("Логин", "Пароль"));
    ИмяФайлаОтправки = КаталогВременныхФайлов() + "upload.txt";    
    парПутьКФайлу = "C:\Data\ObmenMongo\dsfs.png";
        
    HTTPЗапрос     = Новый HTTPЗапрос("/FileBaseDB/FileTable/" + Документ.Ссылка.УникальныйИдентификатор() + "?id_type=STRING", ЗаголовокЗапроса);
    Данные         = Новый ДвоичныеДанные(парПутьКФайлу);    
    врСоотв     = Новый Соответствие;    
    врСоотв.Вставить("Base", "1CBase");
    врСоотв.Вставить("Date", ТекущаяДата());
    врСоотв.Вставить("File", Base64Строка(Данные));
    врСоотв.Вставить("desc", парПутьКФайлу);
    
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, врСоотв);
    врСтр = ЗаписьJSON.Закрыть();
    врСтр = СтрЗаменить(врСтр, Символы.ПС, "");
    HTTPЗапрос.УстановитьТелоИзСтроки(врСтр);
    ИмяФайлаОтвета = ПолучитьимяВременногоФайла("txt");
    Ответ         = Соединение.ВызватьHTTPМетод("PUT", HTTPЗапрос, ИмяФайлаОтвета);
 
 
   mistеr
 
1 - 20.09.17 - 13:03
Дожили. На Мисте вопросы по Монге.
   redbull4561
 
2 - 20.09.17 - 13:04
Вопрос по 1С )  да и вопросов по монге много но дельных не одного
   redbull4561
 
3 - 20.09.17 - 13:07
Ребят  хорошо будет если хотябы годную доку кто подскажет, не говоря уж о ответе)
   Вафель
 
4 - 20.09.17 - 13:11
а что ничего более подробно не возвращается?
   redbull4561
 
5 - 20.09.17 - 13:13
В файл ответа  выходит такая инфа.

{"_exceptions":[{"exception":"org.bson.json.JsonParseException","exception message":"Invalid JSON input. Position: 6. Character: '\ufeff'."}],"http status code":406,"http status description":"Not Acceptable","message":"Invalid JSON"}
   shamashs
 
6 - 20.09.17 - 13:14
406 это уже ответ сервера сам json у тебя кривоват судя по месаджу (5)
   shamashs
 
7 - 20.09.17 - 13:15
'\ufeff'. русские буквы ч jsone отправляешь?
   redbull4561
 
8 - 20.09.17 - 13:20
(7) нет русские буквы не отправляю
Этот когда проверял тоже думал в нем проблема. сформировал в ручную добавил запись в монго  этим наборов ключей
С начало ругалось на перевод строки, убрал  добавилась без проблем.
Тут то я подумал что вот оно решение. удалил переводы строки в 1С.... по не помогло...

врСоотв     = Новый Соответствие;    
    врСоотв.Вставить("Base", "1CBase");
    врСоотв.Вставить("Date", ТекущаяДата());
    врСоотв.Вставить("File", Base64Строка(Данные));
    врСоотв.Вставить("desc", парПутьКФайлу);
    
    ЗаписьJSON.УстановитьСтроку();
    ЗаписатьJSON(ЗаписьJSON, врСоотв);
    врСтр = ЗаписьJSON.Закрыть();
    врСтр = СтрЗаменить(врСтр, Символы.ПС, "");
    HTTPЗапрос.УстановитьТелоИзСтроки(врСтр);
   redbull4561
 
9 - 20.09.17 - 13:22
(6) Есть подозрения на заголовки, но что то инфы не могу найти (
   Вафель
 
10 - 20.09.17 - 13:23
покажи весь джсон
https://pastebin.com
 
 Рекламное место пустует
   shamashs
 
11 - 20.09.17 - 13:26
по 406 ошибке смотри http status description":"Not Acceptable", да скорее всего заголовки.
   dezss
 
12 - 20.09.17 - 13:27
Например, попробуй так.
ЗаголовокЗапроса.Вставить("Content-type","application/json; charset=utf-8");
   dezss
 
13 - 20.09.17 - 13:28
(12) + может еще надо в заголовках размер тела указывать
   redbull4561
 
14 - 20.09.17 - 13:29
{
"desc": "C:\\Data\\ObmenMongo\\dsfs.png",
"Base": "1CBase",
"File": "sdfsdfsdf",
"Date": "2017-09-20T15:27:17"}

В поле File   закодированый файл в Base64 ( большой слишкой не стал скидывать
   redbull4561
 
15 - 20.09.17 - 13:30
(13) (12)  Перебирал такие  вариант, не помогло
   Вафель
 
16 - 20.09.17 - 13:32
проверь валидность, например, здесь
https://jsonlint.com/#
   Shur1cIT
 
17 - 20.09.17 - 13:33
(0) обычно я в Postman json отлаживаю, очень удобно, там же руками сам json править можно и проверять на месте
   shamashs
 
18 - 20.09.17 - 13:36
(16) спс
   redbull4561
 
19 - 20.09.17 - 13:41
(16)  Проверил структура нормальная  
Единственное что правил там из 1С передался символ переноса строки
   redbull4561
 
20 - 20.09.17 - 13:43
   Asmody
 
21 - 20.09.17 - 13:48
\ufeff — это маркер BOM.
   redbull4561
 
22 - 20.09.17 - 14:23
(21) подскажи что значит?
   Asmody
 
27 - 20.09.17 - 15:40
   Вафель
 
28 - 20.09.17 - 15:41
(25) вполне норм получилось (со скриптом если)
   redbull4561
 
29 - 21.09.17 - 08:21
UP есть еще мысли?


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует