Отправка запроса к REST API

  • Автор темы Автор темы Livekik
  • Дата начала Дата начала

Livekik

Client
Регистрация
18.08.2016
Сообщения
31
Реакции
3
Баллы
8
Привет.

Нет ли готового шаблона на отправку простого REST API?:
1. Авторизоваться ('Authorization': 'OAuth <token>')
2. Приложить json ({"name": "data"})

Пытался так:
C#:
Развернуть Свернуть Копировать
string json = string.Join(": ", new[]{"name", "data"});
string[] header = new[]{string.Join(": ", new[]{"Authorization", "OAuth <token>"})};
string httppost  = ZennoPoster.HttpPost("https://site.ru/api/data", json, @"application/json",  "", "UTF-8", ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly, 30000, "", "", false, 0, header);

но не проходит - ошибка Service unavailable
отправляю тоже самое через https://reqbin.com/ - все успешно.
 
Да вроде все ок.

Попробуйте еще так
C#:
Развернуть Свернуть Копировать
string json = string.Join(": ", new[] { "name", "data" });
string[] header = new[] { string.Join(": ", new[] { "Authorization", "OAuth <token>" }) };
string httppost = ZennoPoster.HttpPost(
    url:"https://site.ru/api/data",
    content: json,
    AdditionalHeaders: header,
    contentPostingType: "application/json",
    respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);

И вот так

C#:
Развернуть Свернуть Копировать
string json = string.Join(": ", new[] { "name", "data" });
string[] header = new[] { string.Join(": ", new[] { "Authorization", "OAuth <token>" }) };
string httppost = ZennoPoster.HTTP.Request(
    method: ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.POST,
    url: "https://site.ru/api/data",
    content: json,
    AdditionalHeaders: header,
    contentPostingType: "application/json",
    respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly);

Если не будет работать нужно смотреть в мониторинг трафика, что именно там не правильно формируется.
 
  • Спасибо
Реакции: Livekik
Победил формируя содержимое без string.Join:
C#:
Развернуть Свернуть Копировать
string json = "{\"name\": \"data\"}";
string[] headers = { "Authorization: OAuth <token>" };
string response = ZennoPoster.HTTP.Request(
    method: ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.POST,
    url: "https://site.ru/api/data",
    content: json,
    AdditionalHeaders: headers,
    contentPostingType: "application/json",
    respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly
);
project.SendInfoToLog(response);
 
  • Спасибо
Реакции: Alex.A и Dmitriy Ka
Точно
string.Join(": ", new[] { "name", "data" }); отдавал "name": "data", а это не формат Json
Нам это еще надо в фигурки обернуть, чтобы получился Json {"name": "data"}
 
  • Спасибо
Реакции: Livekik

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)