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

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/ - все успешно.
 

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
822
Благодарностей
567
Баллы
93
Да вроде все ок.

Попробуйте еще так
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

Livekik

Client
Регистрация
18.08.2016
Сообщения
31
Благодарностей
3
Баллы
8
Победил формируя содержимое без 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

Dmitriy Ka

Client
Регистрация
03.05.2016
Сообщения
822
Благодарностей
567
Баллы
93
Точно
string.Join(": ", new[] { "name", "data" }); отдавал "name": "data", а это не формат Json
Нам это еще надо в фигурки обернуть, чтобы получился Json {"name": "data"}
 
  • Спасибо
Реакции: Livekik

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