|
Parse API из 1С | ☑ | ||
---|---|---|---|---|
0
pallid
16.07.14
✎
10:51
|
Решил попробовать юзать api сервиса parse.com, нашел пример обрашения к своим функциям на pyton:
import json,httplib connection = httplib.HTTPSConnection('api.parse.com', 443) connection.connect() connection.request('POST', '/1/functions/hello', json.dumps({ }), { "X-Parse-Application-Id": "RTxFlK5FF4i0HpFG2klX0W3LWGoZWtHlgHNr9EBF", "X-Parse-REST-API-Key": "ETKk6zQvoUnJnRhkzNyhrw4U9j01yoG2eKKrrgj7", "Content-Type": "application/json" }) result = json.loads(connection.getresponse().read()) print result Начал писать что-то похожее на 1с, в результате получилось: Подключение = Новый HTTPСоединение("api.parse.com",443); Содержание = Новый Соответствие; Содержание.Вставить("X-Parse-Application-Id", "RTxFlK5FF4i0HpFG2klX0W3LWGoZWtHlgHNr9EBF"); Содержание.Вставить("X-Parse-REST-API-Key","ETKk6zQvoUnJnRhkzNyhrw4U9j01yoG2eKKrrgj7"); Содержание.Вставить("Content-Type", "application/json"); Запрос = Новый HTTPЗапрос("/1/functions/hello", Содержание); Файл = Строка(КаталогВременныхФайлов()+"test.txt"); Подключение.ОтправитьДляОбработки(Запрос, Файл); Но при запуске процедуры вот такое вот сообщение об ошибке: {Обработка.Parse.Форма.Форма.Форма(27)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки) Подключение.ОтправитьДляОбработки(Запрос, Файл); по причине: Ошибка работы с Интернет: Server returned nothing (no headers, no data) Можете подсказать куда копать... |
|||
1
Maxus43
16.07.14
✎
10:53
|
имхо туда копать http://bit.ly/1jOCmUk
|
|||
2
pallid
16.07.14
✎
11:01
|
(1) И тебе доброго утра
|
|||
3
oleg_km
16.07.14
✎
11:17
|
А каким волшебным образом у тебя соответствие преобразуется в JSON?
|
|||
4
Поpyчик-4
16.07.14
✎
12:29
|
(3) по щучьему веленью.
|
|||
5
РенеДекарт
16.07.14
✎
12:39
|
(4) ну автор же API применил... оно само от использования таких слов преобразуется куда надо, и отработает как надо ))
|
|||
6
РенеДекарт
16.07.14
✎
12:40
|
(0) на самом деле, автор, ты не в курсе, что 1с не поддерживает JSON?
|
|||
7
vhl
16.07.14
✎
12:53
|
(6) Причем тут JSON?
|
|||
8
pallid
16.07.14
✎
13:02
|
Решил попробовать "Microsoft.XMLHTTP"
ТекстСобытия = ""; ХТТП = Новый COMОбъект("Microsoft.XMLHTTP"); ХТТП.Open("POST", "https://api.parse.com/1/functions/hello", Ложь); ХТТП.SetRequestHeader("Host", "api.parse.com"); ХТТП.SetRequestHeader("Content-Type", "application/json"); // ХТТП.SetRequestHeader("X-HTTP-Method-Override", "PUT"); ХТТП.SetRequestHeader("X-Parse-Application-Id", "RTxFlK5FF4i0HpFG2klX0W3LWGoZWtHlgHNr9EBF"); ХТТП.SetRequestHeader("X-Parse-REST-API-Key","ETKk6zQvoUnJnRhkzNyhrw4U9j01yoG2eKKrrgj7"); ХТТП.Send(ТекстСобытия); В ответ получаю "{"code":107,"error":"invalid json: "}" |
|||
9
Поpyчик-4
16.07.14
✎
13:12
|
(8) Ржунимагу. Ты на сервер-получатель что передаёшь? Данные в каком виде? У 1С нет штатных средств работы с JSON.
|
|||
10
oleg_km
16.07.14
✎
13:30
|
В (0) жаве у тебя в теле запроса отправляется строка с формате JSON:
connection.request('POST', '/1/functions/hello', json.dumps({ }), { "X-Parse-Application-Id": "RTxFlK5FF4i0HpFG2klX0W3LWGoZWtHlgHNr9EBF", "X-Parse-REST-API-Key": "ETKk6zQvoUnJnRhkzNyhrw4U9j01yoG2eKKrrgj7", "Content-Type": "application/json" }) а в (8) Ты пытаешься эти данные впихнуть в заголовок HTTP запроса, ты вообще разницу улавливаешь? Может сначала нужно разобраться с протоколом HTTP? Пока как слепой котенок тыкаешься |
|||
11
Котокот
16.07.14
✎
13:42
|
(0) Вот в (10) правильно написано. Используй модуль для работы с JSON (переводит структуру в формат JSON, найти можно в инете) и все взлетит.
|
|||
12
pallid
08.08.14
✎
15:49
|
Вот так получилось:
ХТТП = Новый COMОбъект("Microsoft.XMLHTTP"); ХТТП.Open("get", "https://api.parse.com/1/classes/super", Ложь); ХТТП.SetRequestHeader("Host", "api.parse.com"); ХТТП.SetRequestHeader("Content-Type", "application/json"); ХТТП.SetRequestHeader("X-Parse-Application-Id", "RTxFlK5FF4i0HpFG2klX0W3LWGoZWtHlgHNr543F"); ХТТП.SetRequestHeader("X-Parse-REST-API-Key","ETKk6zQvoUnJnRhkzNyhrw4U9j01yoG2eKKr2434"); Имя = "name"; ЗначениеИмени = "max"; Текст = Строка("{"+""""+Имя+""""+":"+""""+ЗначениеИмени+""""+"}"); ХТТП.Send(); Сообщить(ХТТП.Status); Сообщить( ХТТП.ResponseText); |
|||
13
acsent
08.08.14
✎
15:51
|
для отладки таких штук используй фидлер
|
|||
14
acsent
08.08.14
✎
15:54
|
попробуй так
Ответ = Подключение.ОтправитьДляОбработки(Запрос) |
|||
15
pallid
08.08.14
✎
22:32
|
ХТТП = Новый COMОбъект("Microsoft.XMLHTTP");
ХТТП.Open("post", "https://api.parse.com/1/classes/super", Ложь); ХТТП.SetRequestHeader("Host", "api.parse.com"); ХТТП.SetRequestHeader("Content-Type", "application/json"); ХТТП.SetRequestHeader("X-Parse-Application-Id", "RTxFlK5FF4i0HpFG2klX0W3LWGoZWtHlgHNr543F"); ХТТП.SetRequestHeader("X-Parse-REST-API-Key","ETKk6zQvoUnJnRhkzNyhrw4U9j01yoG2eKKr2434"); Имя = "name"; ЗначениеИмени = "max"; Текст = Строка("{"+""""+Имя+""""+":"+""""+ЗначениеИмени+""""+"}"); ХТТП.Send(Текст); Сообщить(ХТТП.Status); Сообщить( ХТТП.ResponseText); |
|||
16
kokamoonga
09.08.14
✎
01:58
|
(15) >>> Текст = Строка("{"+""""+Имя+""""+":"+""""+ЗначениеИмени+""""+"}");
Ну нифига себе, ты написал JSON-парсер для 1С |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |