Работа с API на C#
-
Дмитрий
- Сообщения: 9
- Зарегистрирован: 26 окт 2019, 17:53
- Имя: Дмитрий Пахомов
- Откуда: Россия, Форос
- Организация: Деловой разговор
- Контактная информация:
Работа с API на C#
Нужен пример, как с API Руководителя работать из C#.
У меня следующий код на C# работает с API-запросами:
using (HttpRequestMessage httpRequest = new HttpRequestMessage(method, URI))
{
httpRequest.Content = new StringContent(content, Encoding.UTF8, "application/json"/*ContentType*/);
try
{
using (HttpResponseMessage httpResponse = await httpClient.SendAsync(httpRequest))
{
http_result.Response = await httpResponse.Content.ReadAsStringAsync();
http_result.StatusCode = (int)httpResponse.StatusCode;
}
}
catch (Exception ex)
{
http_result.Response = ex.ToString();
http_result.StatusCode = -1;
}
}
Я пробую в переменной content передать запрос. Вот пример, как я это делаю:
content = "{\"key\":\"...\", \"username\":\"...\", \"password\":\"...\", \"limit\":\"10\", \"action\":\"select\", \"entity_id\":\"59\", \"filters\": {\"id\":\"1\"}}";
Но в результате запрос не отрабатывается. Руководитель не видит, что заданы параметры, которые я определяю в переменной content.
Хочу понять, как из C# делать API-запросы.
У меня следующий код на C# работает с API-запросами:
using (HttpRequestMessage httpRequest = new HttpRequestMessage(method, URI))
{
httpRequest.Content = new StringContent(content, Encoding.UTF8, "application/json"/*ContentType*/);
try
{
using (HttpResponseMessage httpResponse = await httpClient.SendAsync(httpRequest))
{
http_result.Response = await httpResponse.Content.ReadAsStringAsync();
http_result.StatusCode = (int)httpResponse.StatusCode;
}
}
catch (Exception ex)
{
http_result.Response = ex.ToString();
http_result.StatusCode = -1;
}
}
Я пробую в переменной content передать запрос. Вот пример, как я это делаю:
content = "{\"key\":\"...\", \"username\":\"...\", \"password\":\"...\", \"limit\":\"10\", \"action\":\"select\", \"entity_id\":\"59\", \"filters\": {\"id\":\"1\"}}";
Но в результате запрос не отрабатывается. Руководитель не видит, что заданы параметры, которые я определяю в переменной content.
Хочу понять, как из C# делать API-запросы.
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Работа с API на C#
Вы передаете json, а нужно GET или POST
-
Дмитрий
- Сообщения: 9
- Зарегистрирован: 26 окт 2019, 17:53
- Имя: Дмитрий Пахомов
- Откуда: Россия, Форос
- Организация: Деловой разговор
- Контактная информация:
Re: Работа с API на C#
А вы с json не работаете?
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Работа с API на C#
Пока нет.
-
Дмитрий
- Сообщения: 9
- Зарегистрирован: 26 окт 2019, 17:53
- Имя: Дмитрий Пахомов
- Откуда: Россия, Форос
- Организация: Деловой разговор
- Контактная информация:
Re: Работа с API на C#
А пример, как такой запрос сделать на C# нет возможности привести? Пока сам не могу разобраться, как нужный мне запрос конвертировать в одну строку POST-запроса
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Работа с API на C#
К сожалению C# не знаю, по этому не помогу.
-
Дмитрий
- Сообщения: 9
- Зарегистрирован: 26 окт 2019, 17:53
- Имя: Дмитрий Пахомов
- Откуда: Россия, Форос
- Организация: Деловой разговор
- Контактная информация:
Re: Работа с API на C#
Я правильно понимаю, что в конечном счете запрос должен преобразовываться к следующему виду:
https://localhost/api/rest.php?key=...& ... ers[id]="1"
Но у меня такой запрос выдает все сущности из категории 59. А мне нужна только одна сущность с id = 1. Если я пойму, как формировать строку https-запроса, то я это без проблем потом реализую на C#. Я пока не могу понять, как мне в этой строке указывать параметры фильтра. Не сможете подсказать?
https://localhost/api/rest.php?key=...& ... ers[id]="1"
Но у меня такой запрос выдает все сущности из категории 59. А мне нужна только одна сущность с id = 1. Если я пойму, как формировать строку https-запроса, то я это без проблем потом реализую на C#. Я пока не могу понять, как мне в этой строке указывать параметры фильтра. Не сможете подсказать?
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Работа с API на C#
На данный момент нет фильтра по ID. Он появится в 2.6.
-
Дмитрий
- Сообщения: 9
- Зарегистрирован: 26 окт 2019, 17:53
- Имя: Дмитрий Пахомов
- Откуда: Россия, Форос
- Организация: Деловой разговор
- Контактная информация:
Re: Работа с API на C#
Попробую описать свою задачу в общем виде, и хотелось бы услышать имеет ли она решение в рамках текущей версии, или нужно ждать следующей.
Есть база контрагентов и подчиненная ей база контактов. Контакт содержит информацию о номере телефона и ФИО его владельца. Мне нужно по номеру телефона найти контакт, а затем открыть карточку контрагента, содержащего найденный контакт. Сейчас почему-то поле [parent_item_id] в найденном результате отображается как пустое, и я не могу понять, как мне через API от карточки контакта перейти к родительской карточке контрагента.
Есть база контрагентов и подчиненная ей база контактов. Контакт содержит информацию о номере телефона и ФИО его владельца. Мне нужно по номеру телефона найти контакт, а затем открыть карточку контрагента, содержащего найденный контакт. Сейчас почему-то поле [parent_item_id] в найденном результате отображается как пустое, и я не могу понять, как мне через API от карточки контакта перейти к родительской карточке контрагента.
- support
- Техническая поддержка
- Сообщения: 7661
- Зарегистрирован: 19 окт 2014, 18:22
- Имя: Харчишин Сергей
- Откуда: Крым, Евпатория
Re: Работа с API на C#
Да, сейчас parent_item_id не выбирается. Добавил в план для 2.6