|
cURL и 1С (Post-запрос) | ☑ | ||
---|---|---|---|---|
0
бомболюк
07.11.12
✎
11:05
|
Добрый день. Подскажите, пожалуйста, если кто в курсе: как мне вот эту строку (post-запрос), подаваемую на вход программе curl.exe, выполнить средствами 1С:
curl -v -F "ufile=@c:\file1.csv;type=text/plain;filename=file1" -0 -F "__login=dummy" -F "__password=MyPassword" -F "__did=17" http://someserver.com/upload.phtml |
|||
1
pumbaEO
07.11.12
✎
11:14
|
КомандаСистемы или запустить приложение...
|
|||
2
бомболюк
07.11.12
✎
11:17
|
нет, мне бы портировать эти параметры в вызовы 1С-ких методов объекта типа (предположительно) "HTTPСоединение".
|
|||
3
luns
07.11.12
✎
11:20
|
(0) напрямую заPostить файл не выйдет. надо серверный скрипт вызывать и ему двоичные данные отдавать.
|
|||
4
бомболюк
07.11.12
✎
11:26
|
(3) то есть собственно без этого curl-а не обойтись получается?
|
|||
5
DrunkAnimal
07.11.12
✎
11:30
|
(3) почему?
|
|||
6
Повелитель
07.11.12
✎
11:36
|
Вот мой пример:
СсылкаЗапроса = "http://ksmarket.kz/1c/1c-sync.php?" + "action=replace_valuta" + //Команда "&name=" + Состав.БуквенныйКод + //Буквенный код RUB,KZT "&caption=" + Состав.Наименование + //Наименование "&kash=" + Новый УникальныйИдентификатор + //чтобы не кэшировалось "&rate=" + Формат(Состав.Курс,"ЧРД=."); //Курс Функция сайтВыполнитьКомандуСайта(СсылкаЗапроса,ИмяОперации) Экспорт Авторизация = сайтАвторизация(); Пользователь = Авторизация.Пользователь; Пароль = Авторизация.Пароль; //создаем объект "Microsoft.XMLHTTP" попытка XMLHttp = новый COMObject("Microsoft.XMLHTTP"); исключение сайтЗаписатьВЛог(ИмяОперации,"Ошибка создания объекта 'Microsoft.XMLHTTP': " + ОписаниеОшибки()); возврат Строка(ТекущаяДата()) + " Ошибка создания объекта 'Microsoft.XMLHTTP': " + ОписаниеОшибки(); конецпопытки; попытка XMLHttp.open("GET", СсылкаЗапроса, Ложь,Пользователь,Пароль); исключение сайтЗаписатьВЛог(ИмяОперации," Ошибка инициализации запроса HTTP: " + ОписаниеОшибки()); возврат Строка(ТекущаяДата()) + " Ошибка инициализации запроса HTTP: " + ОписаниеОшибки(); конецпопытки; //отправляем запрос попытка XMLHttp.send(); исключение сайтЗаписатьВЛог(ИмяОперации," Ошибка отправки запроса HTTP: " + ОписаниеОшибки()); возврат Строка(ТекущаяДата()) + " Ошибка отправки запроса HTTP: " + ОписаниеОшибки(); конецпопытки; //проверка и обработка ответа если XMLHttp.status = 200 тогда Ответ = XMLHttp.responsetext; //1 - Успех //-1 - Отказ //Текст - ТекстОшибки //Сообщить(Ответ); Если Ответ <> "1" Тогда сайтЗаписатьВЛог(ИмяОперации," Ошибка: " + Ответ); КонецЕсли; Возврат Ответ; иначе сайтЗаписатьВЛог(ИмяОперации," Ошибка - статус: " + Строка(XMLHttp.StatusText)); возврат Строка(ТекущаяДата()) + " Ошибка - статус: " + Строка(XMLHttp.StatusText); конецесли; КонецФункции Ответ = сайтВыполнитьКомандуСайта(СсылкаЗапроса,ИмяОперации); |
|||
7
бомболюк
07.11.12
✎
11:37
|
(6) мне надо чтоб это из под Linux работало :-(
|
|||
8
Повелитель
07.11.12
✎
11:37
|
Упс, вначале 1 строчку пропустил (она в конец упала), надо так:
//Добавление или изменение пользователя //Если передать пустой параметр, он затрет //Если параметр не передавать, он останется без изменения СсылкаЗапроса = "http://ksmarket.kz/1c/1c-sync.php?" + "action=replace_valuta" + //Команда "&name=" + Состав.БуквенныйКод + //Буквенный код RUB,KZT "&caption=" + Состав.Наименование + //Наименование "&kash=" + Новый УникальныйИдентификатор + //чтобы не кэшировалось "&rate=" + Формат(Состав.Курс,"ЧРД=."); //Курс Ответ = сайтВыполнитьКомандуСайта(СсылкаЗапроса,ИмяОперации); |
|||
9
Повелитель
07.11.12
✎
11:37
|
(7) под линукс не подскажу
|
|||
10
xReason
07.11.12
✎
11:58
|
(8) Это будет GET, а как сделать POST ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |