Имя: Пароль:
1C
1C 7.7
v7: 1с 7.7 отправить файл json с помощью post-запроса
,
0 tgu82
 
26.07.18
14:40
1с 7.7 отправить файл json с помощью post-запроса

Сразу говорю читал что имеется на эту тему
Но ощущаю себя обезьяной с гранатой.
Хотелось бы малость понять как передать
пароль, логин, имя сайта и имя файла через winhttp

Даже когда-то что-то пробовал (winhttp)
Задача не шкурная, поставщик требует эти данные.
В-принципе можем и оплатить если в разумных пределах.
Если нарушаю правила форума то по незнанию.
1 tgu82
 
26.07.18
14:46
(0)
cat data.json | curl -is --user your_api_login:your_password -d @- https://www.***.ru/api/json/

Можно и через CURL только непонятно как передать имя файла.
CAT - это что? Я так понял что это для линукса программа но может и ошибаюсь ибо пока совсем не копенгаген в этих делах :)
2 novichok79
 
26.07.18
14:52
а в чем сложность? раз уже через winhttp работали?
3 tgu82
 
26.07.18
14:59
(2) Не работал а что-то пробовал может случайно что-то и получалось когда-то, но в практике не надо было а теперь надо хоть как отправлять json-файл, ну его я уж как-нибудь по данным ТИС сформирую. А вот с отправкой большой напряг. Посоветуйте чеи проще все это сделать? Мне вот curl нравится, но как в ее параметры добавить указание о том что надо файл json передать и указать имя файла?
Ну есть код какой-то с winhttp только мне он малопонятен все-таки, а придется пользоваться этой штукой постоянно
4 Kigo_Kigo
 
26.07.18
15:07
Функция СоздатьXMLHttpRequest(URL,Метод = "GET")
    
    Попытка
        XMLHttpRequest = СоздатьОбъект("Msxml2.XMLHTTP.6.0");
    Исключение
        Попытка
            XMLHttpRequest = СоздатьОбъект("Msxml2.XMLHTTP.3.0");
        Исключение
            Попытка
                XMLHttpRequest = СоздатьОбъект("Msxml2.XMLHTTP");
            Исключение
                Попытка
                    XMLHttpRequest = СоздатьОбъект("Microsoft.XMLHTTP");
                Исключение
                    Сообщить("Невозможно создать XMLHttpRequest.                                                                                          
                    |" + ОписаниеОшибки(), "!");
                КонецПопытки;
            КонецПопытки;
        КонецПопытки;
    КонецПопытки;
    
    XMLHttpRequest.open(Метод, URL, 0);
    
    Возврат XMLHttpRequest;
    
КонецФункции


    XOriginRequestId = Строка(СоздатьGUID());

    URL = "https://wwwwwwww.com/v1/partner/company";;
    XMLHttpRequest = СоздатьXMLHttpRequest(URL);
    XMLHttpRequest.Open("GET", URL, 0);  
    XMLHttpRequest.setRequestHeader("Accept", "application/json");
    XMLHttpRequest.setRequestHeader("X-Api-Key", Токен);

    XMLHttpRequest.setRequestHeader("X-Origin-Request-Id", Строка(XOriginRequestId));
    XMLHttpRequest.setRequestHeader("X-Timestamp", Строка(XTimestamp));
    ТекстЗапроса = "https://wwwwwwwww.com/v1/partner/company";;
    XMLHttpRequest.send(ТекстЗапроса);
    //Текст = XMLHttpRequest.responseXml.xml;
    ТекстОтвета = СоздатьОбъект("Текст");
    ТекстОтвета.открыть(КаталогИБ()+"txt2_");
    ОтветОтСервера = СокрЛП(XMLHttpRequest.responseText);
5 NikVars
 
26.07.18
15:09
6 tgu82
 
26.07.18
15:13
(5) Спасибо, читал я это но логика плохо мне очевидна
Зачем-то надо еще GET-запрос посылать
А зачем?
7 Kigo_Kigo
 
26.07.18
15:14
ТекстЗапроса = url+Отправить;  //Отправить это строка json
    URL = ТекстЗапроса;
    XMLHttpRequest = СоздатьXMLHttpRequest(URL,"POST");
    XMLHttpRequest.setRequestHeader("Accept", "application/json");
    XMLHttpRequest.setRequestHeader("X-Api-Key", Токен);

    XMLHttpRequest.setRequestHeader("X-Origin-Request-Id", Строка(XOriginRequestId));
    XMLHttpRequest.setRequestHeader("X-Timestamp", Строка(XTimestamp));

    


    XMLHttpRequest.send(ТекстЗапроса);
    //ОтветОтСервера = СокрЛП(XMLHttpRequest.responseText);
    ТекстОтвета = СоздатьОбъект("Текст");
    ТекстОтвета.открыть(КаталогИБ()+"txt2_");
    ОтветОтСервера = СокрЛП(XMLHttpRequest.responseText);
    ТекстОтвета . ДобавитьСтроку(ОтветОтСервера);
    ИЗСтрокиСЗ = СоздатьОбъект("СписокЗначений");
    
    ТекстОтвета1 = СтрЗаменить(ОтветОтСервера,":",",");
    ТекстОтвета1 = СтрЗаменить(ТекстОтвета1,"{","");
    ТекстОтвета1 = СтрЗаменить(ТекстОтвета1,"}","");


    ИЗСтрокиСЗ.ИзСтрокиСРазделителями(ТекстОтвета1);
    Если ИЗСтрокиСЗ.ПолучитьЗначение(1)  = "errorCode" Тогда
        Предупреждение(СокрЛП(ИЗСтрокиСЗ.ПолучитьЗначение(4)));
        //Возврат СокрЛП(ИЗСтрокиСЗ.ПолучитьЗначение(4)) ;
    КонецЕсли;
8 tgu82
 
26.07.18
15:15
(4) А мне же Post-запрос нужен.
И не вижу я как логин и пароль передать
9 Kigo_Kigo
 
26.07.18
15:16
(8) Get это запросить данные с ервера, пост - отправить, логин и пароль укладиваются как и токен в моем примере
10 Kigo_Kigo
 
26.07.18
15:18
по идее
XMLHttpRequest.setRequestHeader("Login", логин);
XMLHttpRequest.setRequestHeader("Password", Пароль);
11 tgu82
 
26.07.18
15:19
(9) Это понятно спасибо, но насчет логин и пароль не понял
ПТекстЗапроса = url+Отправить;  //Отправить это строка json
Строка json или файл json (типа \\оффис\проба.json) ?
12 tgu82
 
26.07.18
15:22
(10) Вот как раз Да. Поймет ли сайт setRequestHeader("Login", логин)? Это в API сайта как-то должно быть указано?
13 NSSerg
 
26.07.18
15:25
WinHttp.SetCredentials(Логин,Пароль,0)
14 Kigo_Kigo
 
26.07.18
15:26
(11) я ее формирую как строку в 1с-ке, по шаблону, который дал сайт
(12) должно быть указано, куда совать логин и пароль, но почти уверен что в шапку
15 tgu82
 
26.07.18
15:27
(13) winhttp - это
    WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1") ?
16 NSSerg
 
26.07.18
15:30
WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");    
WinHttp.Open("POST", URL, 0, Логин, Пароль);
WinHttp.SetCredentials(Логин, Пароль, 0);
WinHttp.Send(POST_STRING);
(15) Конечно да.
17 tgu82
 
26.07.18
15:34
(16) Спасибо. А из чего состоит post_string?
Какой у нее формат должен быть? И где здесь передача файла json?
18 NSSerg
 
26.07.18
15:36
(17) Это и есть содержимое твоего JSON.
19 trad
 
26.07.18
15:38
(17) post_string в твоем случае и есть строка в формате json
20 tgu82
 
26.07.18
15:38
(18) То есть это получается длиннющая строка?
21 trad
 
26.07.18
15:40
вариант передачи файла через поток:

    Данные = СоздатьОбъект("ADODB.Stream");
    Данные.open();
    Данные.loadFromFile(ПутьКФайлу);
    
    Запрос = СоздатьОбъект("Msxml2.ServerXMLHTTP");
    Запрос.open("POST", url, 0, Логин, Пароль);
    Запрос.setRequestHeader("Content-Type", "application/json");
    //прочие заголовки
    Запрос.send(Данные);
    
    Если Запрос.status = 200 Тогда
        
        Ответ = Запрос.responseStream;
        Ответ.saveToFile(ПутьКФайлуОтвета);
    
    Иначе
        ТекстОшибки = "Ошибка: " + Запрос.status + " : " + Запрос.statusText;
        Сообщить(ТекстОшибки);
    КонецЕсли;    

    
    Данные.close();
22 tgu82
 
26.07.18
15:40
(18,20) А просто имя файла как-то нельзя передать в параметры post-запроса чтоб сайт сообразил что это и есть нужный ему файл?
23 NSSerg
 
26.07.18
15:41
(22) Нет. А зачем?
24 tgu82
 
26.07.18
15:43
(23) ну вот как с помощью curl:
cat data.json | curl -is --user your_api_login:your_password -d @- https://www.***.ru/api/json/

Вот как все было бы замечательно если б я мог прям через командную строку и запускать Это!
Но CAT в винде как я понял - нет
25 NSSerg
 
26.07.18
15:44
(24) У тебя проблема прочитать файл в строку?
26 NSSerg
 
26.07.18
15:46
(24) В (21) Написано как это сделать
Данные = СоздатьОбъект("ADODB.Stream");
Данные.open();
Данные.loadFromFile(ПутьКФайлу);
27 tgu82
 
26.07.18
15:46
(25) В одну Строку прочитать?
Вот сам файл (кусочек его):
Пример отправляемых данных (sellout-data.json)

{
  "sales": [
    {
      "date": "2018-03-14",
      "store": "Филиал 1",
      "items": [
        {
          "sku": "LLBA0-3923-2-08-K01",
          "count": "10"
        },
        {
          "sku": "PC01-4512-05M",
          "count": "20"
        }
      ]
    },
    {
      "date": "2018-03-14",
      "store": "Филиал 2",
      "items": [
        {
          "sku": "MAD10-2-010-C-100",
          "count": "100"
        },
        {
          "sku": "TFS-D3",
          "count": "1"
        }
      ]
    },
    {
      "date": "2018-03-15",
      "store": "Филиал 2",
      "items": [
        {
          "sku": "YDN10-00100",
          "count": "100"
        },
        {
          "sku": "TFS-D3",
          "count": "2"
        }
      ]
    }
  ]
}

Пример отправки Sellout (данные в файле sellout-data.json):

cat sellout-data.json | curl -is --user your_api_login:your_password -d @- https://www.iek.ru/api/sellout/json/
28 Garykom
 
гуру
26.07.18
15:48
Разговор глухонемого со слепым ))
29 tgu82
 
26.07.18
15:49
(26) Спасибо. Кажется дошло. просто получается что для Данные.LoadFromFile(путь) не играет роли что за содержимое файла. Это уже программа на сайте должна сообразить что это файл джейсон
30 NSSerg
 
26.07.18
15:50
(27) Я честно говоря не понимаю, чем строка в (27) Тебя не устраивает. Это такая-же строка как и любая другая.
31 Garykom
 
гуру
26.07.18
15:50
(27) Что ты пристал с этим своим "cat sellout-data.json | curl -is ..." ?

cat - это просто чтение из файла и вывод в консоль с целью затолкать из консоли в curl
32 tgu82
 
26.07.18
15:50
(28) Да нет - разговор глухонемого еле видящего с говорящими и зоркими ))
33 NSSerg
 
26.07.18
15:51
(29) Ты передаешь с помощью POST не файл, а строку!
В данном случае это строка в формате JSON, и сейчас она у тебя лежит в файле.
34 tgu82
 
26.07.18
15:51
(33) А вот теперь дошло наконец-то )))
35 Garykom
 
гуру
26.07.18
15:58
WinHttp=СоздатьОбъект("WinHttp.WinHttpRequest.5.1");    
WinHttp.Open("POST", URL, 0, Логин, Пароль);
WinHttp.SetCredentials(Логин, Пароль, 0);
POST_STRING = "читаем содержимое из файла sellout-data.json";
WinHttp.Send(POST_STRING);
36 tgu82
 
26.07.18
15:58
(34)+ Теперь попробую, по результатам отпишусь
Всем огромное спасибо. Я уже если и с гранатой то с ручной )))
37 tgu82
 
26.07.18
16:18
(21) Вот ошибку дает:
Запрос.send(Данные);
{H:\TORG\EXTFORMS\ПОСТЗАПРОСДЖЕЙСОН.ERT(15)}: msxml3.dll: Получено непредвиденное сообщение или оно имеет неправильный формат.

Данные = СоздатьОбъект("ADODB.Stream");
    Данные.open();
    Данные.loadFromFile(ПутьКФайлу);
    
    Запрос = СоздатьОбъект("Msxml2.ServerXMLHTTP");
    Запрос.open("POST", url, 0, Логин, Пароль);
    Запрос.setRequestHeader("Content-Type", "application/json");
    //прочие заголовки

    Запрос.send(Данные);
38 tgu82
 
26.07.18
16:22
(35) WinHttp.Send(POST_STRING);
{H:\TORG\EXTFORMS\ПОСТЗАПРОСДЖЕЙСОН.ERT(35)}: WinHttp.WinHttpRequest: Получено непредвиденное сообщение или оно имеет неправильный формат.

И тут ошибка. Видимо строку ей надо в специальном формате передавать хотя и так пробовал и этак. Хотел просто тупо строку передать:
POST_STRING = "читаем содержимое из файла sellout-data.json";
WinHttp.Send(POST_STRING);

Не хочет однако
39 trad
 
26.07.18
16:26
(35) у способа с передачей строки есть один небольшой недостаток. Если строка довольно большая, скажем в пару Мб (могу ошибаться), то семерка свалится при передаче ее в com
40 trad
 
26.07.18
16:27
(38) на кодировку файла обрати внимание
41 tgu82
 
26.07.18
16:31
(40) Как указать кодировку или сохранить в какой-то кодировке надо?
42 tgu82
 
26.07.18
16:37
WinHttp.SetRequestHeader("Accept-Language", "ru");// думаю что "ru"...
WinHttp.SetRequestHeader("Accept-Charset", "utf-8");
WinHttp.SetRequestHeader("Content-Language", "ru");
WinHttp.SetRequestHeader("Content-Charset", "utf-8");

Все равно ошибку дает зараза
WinHttp.Send(POST_STRING);
{H:\TORG\EXTFORMS\ПОСТЗАПРОСДЖЕЙСОН.ERT(43)}: WinHttp.WinHttpRequest: Получено непредвиденное сообщение или оно имеет неправильный формат.
43 trad
 
26.07.18
16:38
(41) в какой кодировке надо, надо узнать у http://www.***.ru/api
44 Djelf
 
26.07.18
16:40
(42) А там случаем требуется не multipart/form-data?
Тогда текст запроса нужно по другому готовить.
45 tgu82
 
26.07.18
16:40
(44) Не знаю. Завтра спрошу. А чем изменится запрос?
46 Djelf
 
26.07.18
16:46
(45) Вот так он меняется

_ТекстЗапроса="--"+boundary+"
|Content-Disposition: form-data; name=""xml_file""
//Следующая строка должна быть пустая!!!
|
|"+ТекстЗапроса+"
|--"+
|";


Попробуй сначала через curl послать свой текст.
У curl значительно лучше отладочные сообщения.
Тыкать WinHttp без примера кода отправки можно долго...
47 tgu82
 
26.07.18
16:48
(46) Ну да. А как через curl передать строку?
Логин пароль вижу как? Сайт вижу, а строку как? Какой ключ нужен?
48 Djelf
 
26.07.18
16:51
(47) Просто имя файла в конце строки.
49 NSSerg
 
26.07.18
16:53
Попробуй отправить любым онлайн сервисом
Например
http://seriyps.ru/postget/
50 NSSerg
 
26.07.18
16:56
51 tgu82
 
26.07.18
16:57
Не могу скачать готовый CURL скачивается она с кучей папок. И где исполняемый файл - непонятно
52 Djelf
 
26.07.18
16:59
53 MadDAD
 
26.07.18
17:00
(47) замени CAT на TYPE смысл тот же.
54 Necessitudo
 
26.07.18
17:10
Не факт что там Basic авторизация)
55 trad
 
26.07.18
17:10
56 Владимир1С
 
26.07.18
17:20
(51) Работающий пример нужен?
57 tgu82
 
26.07.18
17:23
(56) Если не жалко - скинь пожалуйста.
а то поставщик поедом ест уже. надо выдать не гора уголек )))
58 tgu82
 
26.07.18
17:25
сПАСИБО. Готовый curl скачал. Запускается однако )))
59 Владимир1С
 
26.07.18
17:31
(57) Что за поставщик? не пони экспресс случаем?
60 Владимир1С
 
26.07.18
17:36
(58) Поймал?
61 tgu82
 
26.07.18
17:52
(59,60) Да спасибо. Нет не он.
Да это не играет роли вообще.
Вот почему не работает никак ???
curl -is --user Логин:Пароль @- https://www.***.ru/api/sellout/json/ в командной среде (win xp)

Никакого ответа - может она вообще не запустилась = хрен поймешь
62 Владимир1С
 
26.07.18
17:54
(61) Пусть пришлют строку подключения по http, яснее будет, куда копать
63 Владимир1С
 
26.07.18
17:57
(61) Старт - загнать заказ ...
64 Djelf
 
26.07.18
18:00
(61) Включи отладку https://ec.haxx.se/usingcurl-verbose.html
65 Garykom
 
гуру
26.07.18
18:12
(61) Объясни откуда (из какой Ж) ты взял это "-is" ?
66 Fram
 
26.07.18
18:13
(38) я так понимаю из winxp отправляешь?
попробуй из более свежей винды
67 Fram
 
26.07.18
18:19
68 Djelf
 
26.07.18
18:27
(65) А что, да... нормально.
-i Include protocol headers in the output
-s Silent mode. Don't output anything

(61) И почему ничего не показывает?
69 Garykom
 
гуру
26.07.18
18:49
(68) Ну так убрать -s будет показывать ошибки
70 Garykom
 
гуру
26.07.18
18:51
У разработчика cURL интересные завихрения, сам себя обрезал на длинные ключи разрешив короткие составные из однобуквенных.

"curl -i -s" - намного понятнее и можно было бы "curl -is" использовать для чего другого.
71 Djelf
 
26.07.18
19:01
(70) Да ты что? Какие завихрения? Это ж unix-way.
И нельзя было бы -is использовать для чего то другого. Составной через один "-" но ключи односимвольные.
Многосимвольные ключи через два "-".

И вообще я на curl ВК`шку для 7.7 собрал, а то под wine ssl в mshttp не робит ;)
Шикарная штука, этот curl. Все умеет, зараза такая...
72 Garykom
 
гуру
26.07.18
19:06
(71) Не проще .Net использовать через ВК от Serginio1 ?
73 Garykom
 
гуру
26.07.18
19:07
(72)+ Обычно разрабы API дают готовые примеры под C# их только в ВК засунуть и все.
74 Djelf
 
26.07.18
19:07
(72) Под wine? оО
75 Garykom
 
гуру
26.07.18
19:08
(74) До 3.5 работает идеально под Wine с 4.5 есть некоторые легкие траблы.
76 Garykom
 
гуру
26.07.18
19:10
(71) Кстати под wine какую сборку 1С 77 юзаем? В каком режиме в файловом или еще как?
77 Djelf
 
26.07.18
19:24
(76) Последнюю 27ю.
Вначале был гибрид с mssql, но dbf значительно быстрее.
Под w@e как то очень ставится ни с# ни mono, старовата она. Но что хорошо работает, то - не трожь.
Из популярных ВК почти все нормально работают: http://catalog.mista.ru/public/19489/
База 6 гигов, автопроведение ночью, 0.4с на документ в среднем.
selta тоже пробовал (транслятор mssql->pgsql), не сильно плохо, но dbf все равно быстрее ;)
78 tgu82
 
26.07.18
19:40
(71) Почему не работает? Обычные ключи и среда CMD в которой
Curl запускается.
79 Djelf
 
26.07.18
19:45
(78) Ты ключем -s подавил все сообщения curl.
Убери его и добавь вместо него v.
80 tgu82
 
26.07.18
19:58
(79) Спасибо
81 tgu82
 
26.07.18
21:26
(79) не помогло, висит в непонятке, ctrl+c нажал и опять запустил
curl -iv --user 111111:pppppppp -d @- https://www.kvak.ru/api/sellout/json/
а логин и пароль в кавычках надо ?
82 Fram
 
26.07.18
22:02
(81) ты (66),(67) пробовал?
83 tgu82
 
27.07.18
09:05
(82) Мне бы хоть понять что winhttp работает. То есть какой-то упрощенный что-ли запрос (может get-запрос)
Я когда-то пробовал сайт яндекса запрашивать, чего-то там в ответ пришло. На этом же компе кстати пробовал. А сейчас как-то все забылось - давно это было уже.
84 tgu82
 
27.07.18
09:23
Вот код который почему-то работает как-то
Дает такой ответ:
200
OK

Функция ПолучитьДатуЧисло(Год,Месяц,День,Часы,Минуты,Секунды)    
    //Сообщить(Дата(Год,Месяц,День)-'01.01.1970');
    Возврат (Дата(Год,Месяц,День)-'01.01.1970')*24*60*60+(Часы-3)*60*60+Минуты*60+Секунды;
КонецФункции

//Функция ОтправитьЗапросПост(СекретныйКлюч,прИмяФайла)//Имя файла - "d:\1cv77bd\Temp\test.json"
Функция ОтправитьЗапросПост()    
    Перем Год,Месяц,День,Часы,Минуты,Секунды;                          
    Год=ДатаГод(ТекущаяДата());
    Месяц=ДатаМесяц(ТекущаяДата());
    День=ДатаЧисло(ТекущаяДата());
    А=ТекущееВремя(Часы,Минуты,Секунды);
    ЮниксВремя=ПолучитьДатуЧисло(Год,Месяц,День,Часы,Минуты,Секунды);    
    //лпСайт="https://eway-test.elevel.ru/api/v2/images/select/";;
    лпСайт="https://eway-test.elevel.ru/api/v2/products/select";;
    СтрокаПараметров="";
    СтрокаПараметров=СтрокаПараметров+"qr={""contract_id"":***,";
    //СтрокаПараметров=СтрокаПараметров+"""hash"":"+ЮниксВремя),";    
    СтрокаПараметров=СтрокаПараметров+"""time"":"+ЮниксВремя+",";
    СтрокаПараметров=СтрокаПараметров+"""user_id"":****}";
    Сообщить(СтрокаПараметров);
    
//    +"0d9f086c3d468d79829204f913b69b6a904deda6"+"/INVOICE_DATA";//"https" должно быть, я так считаю
//
//    oADOStream = СоздатьОбъект("ADODB.Stream");
//    oADOStream.Type = 1; //Binary
//    oADOStream.Open();
//    oADOStream.LoadFromFile(прИмяФайла);

    WinHttp = СоздатьОбъект("WinHttp.WinHttpRequest.5.1");
        WinHttp.Option(2,"utf-8");
    //Отключаем проверку сертификата
    Скрипт= СоздатьОбъект("MSScriptControl.ScriptControl");
    Скрипт.language="javascript";
    Скрипт.AddObject("WinHttp",WinHttp);
    Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags
    Скрипт.Eval("WinHttp.Option(6)=true");//blnEnableRedirects
    Скрипт.Eval("WinHttp.Option(12)=true");//blnEnableHttpsToHttpRedirects
    //Сам запрос
    WinHttp.Open("POST", лпСайт,0);
    WinHttp.SetRequestHeader("Accept-Language", "ru");// думаю что "ru"...
    WinHttp.SetRequestHeader("Accept-Charset", "utf-8");
    WinHttp.SetRequestHeader("Content-Language", "ru");
    WinHttp.SetRequestHeader("Content-Charset", "utf-8");
    WinHttp.SetRequestHeader("Content-type", "application/octet-stream; charset=utf-8;");//Другая сторона должна понять входные данные см.oADOStream, а вот если вдруг не поймет (в чем у меня есть сомнения...), тогда придется указать явное без указания параметров выше:

    
//    WinHttp.Send(СтрокаПараметров);
    
    
Попытка

    WinHttp.Send(СтрокаПараметров);
    
      лпОтвет = WinHttp.ResponseText();
    тк=СоздатьОбъект("Текст");
    тк.ДобавитьСтроку(лпответ);
    тк.Записать("c:\123.html");

    Статус = СокрЛП(WinHttp.Status);

    Описание = СокрЛП(WinHttp.StatusText);

Исключение

    Статус    = "0";

    Описание = СокрЛП(ОписаниеОшибки());

КонецПопытки;

    

Сообщить(Статус);

Сообщить(Описание);

        

WinHttp.Open("GET", лпСайт, 0);

WinHttp.Send();

    

Стр = WinHttp.ResponseText();    



Текст = СоздатьОбъект("Текст");

Текст.ДобавитьСтроку(Стр );

Текст.Записать("c:\0123.html");
КонецФункции // ОтправитьЗапросПост
Процедура Сформировать()  
Перем ИмяСертификата;    
    Ответ=ОтправитьЗапросПост();    
КонецПроцедуры
85 Djelf
 
27.07.18
10:04
(81) >curl -iv --user 111111:pppppppp -d @- https://www.kvak.ru/api/sellout/json/

-d зачем? для начала просто
curl -iv --user 111111:pppppppp  https://www.kvak.ru/api/sellout/json/
ну хоть адрес рассекретил...

у них/у нас проблема с ssl
надо принудительно указывать протокол, так что
curl -iv --sslv3  --user 111111:pppppppp https://www.kvak.ru/api/sellout/json/
86 Djelf
 
27.07.18
10:10
(84) Вот почему, скорее всего, работает
Скрипт.Eval("WinHttp.Option(4)=13056");//intSslErrorIgnoreFlags
87 tgu82
 
27.07.18
10:24
(85) оправлял такую строку:
curl -is --user login:password https://www.***.ru/api/sellout/json/

Получил такой ответ:
HTTP/1.1 404 Not Found
Server: nginx
Date: Fri, 27 Jul 2018 07:17:35 GMT
Content-Type: text/html; charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
X-Powered-CMS: Bitrix Site Manager (be5153de5a662b650b328b6e92d21638)
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=mo6g06tg0vcr8nei2boetv8524; path=/; domain=***.ru; HttpOnly
Set-Cookie: BITRIX_SM_SALE_UID=1215258; expires=Mon, 22-Jul-2019 07:17:34 GMT; Max-Age=31104000; path=/; domain=***.ru
Set-Cookie: BITRIX_SM_SALE_UID=1215258; expires=Mon, 22-Jul-2019 07:17:34 GMT; Max-Age=31104000; path=/; domain=***.ru
Set-Cookie: BITRIX_SM_LOGIN=114-20180625-124350-35; expires=Sat, 01-Jul-2023 07:17:34 GMT; Max-Age=155520000; path=/; domain=***.ru

Filter is empty

Что для меня этот ответ сайта означает?
88 tgu82
 
27.07.18
10:28
(87)+ Вместо
HTTP/1.1 404 Not Found
Server: nginx

Мне надо было получить как я понимаю
200
Server: nginx
ОК
89 Djelf
 
27.07.18
11:01
(87) Уже лучше!
> HTTP/1.1 404 Not Found
Видимо get запросы не работают.
Тогда post, только файл data.json в каталог с curl положи

curl -is --user login:password -d "@data.json"
-X POST https://www.***.ru/api/sellout/json/
90 tgu82
 
27.07.18
11:37
(89) Спасибо. Сработало правильно
type f:\curl_7\sellout-data.json | f:\curl_7\curl -is --user логин:пароль -d @- https://www.***.ru/api/sellout/json/

И получил ответ:
HTTP/1.1 200 OK
Server: nginx
Date: Fri, 27 Jul 2018 08:29:52 GMT
Content-Type: application/json; charset=utf-8
Transfer-Encoding: chunked
Connection: keep-alive
P3P: policyref="/bitrix/p3p.xml", CP="NON DSP COR CUR ADM DEV PSA PSD OUR UNR BUS UNI COM NAV INT DEM STA"
X-Powered-CMS: Bitrix Site Manager (be5153de5a662b650b328b6e92d21638)
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: PHPSESSID=6l8djqlv3e0f02bse0p972uj74; path=/; domain=***.ru; HttpOnly
Set-Cookie: BITRIX_SM_SALE_UID=1215258; expires=Mon, 22-Jul-2019 08:29:51 GMT; Max-Age=31104000; path=/; domain=***.ru
Set-Cookie: BITRIX_SM_SALE_UID=1215258; expires=Mon, 22-Jul-2019 08:29:51 GMT; Max-Age=31104000; path=/; domain=***.ru
Set-Cookie: BITRIX_SM_LOGIN=114-20180625-124350-35; expires=Sat, 01-Jul-2023 08:29:51 GMT; Max-Age=155520000; path=/; domain=***.ru
Access-Control-Allow-Origin: *

[1768,1769,1770]

Вроде как начальный этап получился
91 Fram
 
27.07.18
16:59
(83) надеюсь программируешь ты лучше чем читаешь?
из более свежей винды winhttp попробуй, говорю. если получится на winxp установи (67) и там попробуй еще раз
Ошибка? Это не ошибка, это системная функция.