get запрос к wildberries

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
Всем привет
Я верно делаю get запрос с параметрами:
C#:
string apiUrl = "https://feedbacks-api.wildberries.ru/api/v1/feedbacks";
string parameters = "?isAnswered=true&take=30&skip=0";
responseBody = "";
api ключ точно берется
но постоянно вылетает ошибка что не авторизован
В чем может быть проблема?
запрос надо передавать с параметрами именно. Может тут что-то не так?
нужно запрос именно на c# отправлять

try
{
    // Читаем содержимое ответа
    using (HttpClient client = new HttpClient())
    {
        // Добавление заголовка авторизации с API ключом
        client.DefaultRequestHeaders.Add("Authorization", $"HeaderApiKey {Variables.client_api_key}");
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        // Отправка GET-запроса
        HttpResponseMessage response = await client.GetAsync(apiUrl + parameters);
        responseBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine(responseBody);
        
        // Остальной код..
    }
}
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 363
Благодарностей
957
Баллы
113
1. Без шарпа пробовал? Чтобы понять, у тебя проблема в запросе или именно в реализации на шарпе?
2. API-ключ верный? Может, к данному методу не подходит (например, права не выдали под отзывы или вообще другого типа ключ создан, там разные есть - продвижение и т.д.)
3. В трафике смотрел, что там вообще уходит? Может, станет понятнее, что, допустим, заголовки неверно собрал (у меня, допустим, еще везде host стоит, но не помню, обязателен или нет). Тот же ключ вставляется в заголовке после Authorization: (с двоеточием), плюс лично мне несколько неожиданно видеть в шарпе {Variables.client_api_key}.

В общем, проверять сам запрос, проверять ключ, смотреть в трафике, что там в итоге отправляется ))

ps. Console.WriteLine(responseBody); - у ЧатГПТ спрашивал код? Я когда такое вижу, сразу про него думаю ))
 

MaximTurbo

Client
Регистрация
11.10.2019
Сообщения
33
Благодарностей
8
Баллы
8
Всем привет
Я верно делаю get запрос с параметрами:
C#:
string apiUrl = "https://feedbacks-api.wildberries.ru/api/v1/feedbacks";
string parameters = "?isAnswered=true&take=30&skip=0";
responseBody = "";
api ключ точно берется
но постоянно вылетает ошибка что не авторизован
В чем может быть проблема?
запрос надо передавать с параметрами именно. Может тут что-то не так?
нужно запрос именно на c# отправлять

try
{
    // Читаем содержимое ответа
    using (HttpClient client = new HttpClient())
    {
        // Добавление заголовка авторизации с API ключом
        client.DefaultRequestHeaders.Add("Authorization", $"HeaderApiKey {Variables.client_api_key}");
        client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

        // Отправка GET-запроса
        HttpResponseMessage response = await client.GetAsync(apiUrl + parameters);
        responseBody = await response.Content.ReadAsStringAsync();
        Console.WriteLine(responseBody);
      
        // Остальной код..
    }
}

У тя точно нет ошибок в запросе,вроде report пропустил? Мой автоотвчик по такому ендпоинту работает:
https://feedbacks-api.wb.ru/api/v1/feedbacks/report?isAnswered=false&skip=0
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
Без шарпа пробовал
не пробовал, мне на шарпе именно надо
да 100%, несколько раз проверил
В трафике смотрел, что там вообще уходит
надо посмотреть, не смотрел еще
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63
дык, у вас файл отчета выгружается по запросу, мне json формат нужен) пробую.
 

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 363
Благодарностей
957
Баллы
113
не пробовал, мне на шарпе именно надо
Я понял, что тебе нужен шарп. Я имел ввиду, что сделать кубиком, чтобы понять, в чем проблема именно. В логике формирования запроса/ключе/заголовках или же непосредственно в реализации всего этого на шарпе. Имхо, что-то иногда сделать нужно не для того, чтобы найти правильный вариант, а чтобы найти/исключить неправильный (ну или убедиться, что его нет).
 
Последнее редактирование:

Moonwalker

Client
Регистрация
16.03.2016
Сообщения
1 363
Благодарностей
957
Баллы
113
Ради интереса даже проверил.
Работает, массив отзывов получает (API-ключ со всеми правами):

C#:
string api_key = project.Variables["wb_api_key"].Value;

return ZennoPoster.HTTP.Request(
    method: ZennoLab.InterfacesLibrary.Enums.Http.HttpMethod.GET,
    url: "https://feedbacks-api.wb.ru/api/v1/feedbacks?isAnswered=true&take=30&skip=0",
    content: string.Empty,
    contentPostingType: "application/json",
    proxy: project.GetProxy(),
    Encoding: "UTF-8",
    respType: ZennoLab.InterfacesLibrary.Enums.Http.ResponceType.BodyOnly,
    Timeout: 30000,
    Cookies: string.Empty,
    UserAgent: project.Profile.UserAgent,
    UseRedirect: true,
    MaxRedirectCount: 5,
    AdditionalHeaders: new string[] {
        "Authorization: " + api_key,
    },
    DownloadPath: project.Directory,
    UseOriginalUrl: false,
    throwExceptionOnError: true,
    cookieContainer: project.Profile.CookieContainer,
    removeDefaultHeaders: true);
PS. А твой код вообще откуда? ChatGPT?
 

artsmm

Client
Регистрация
03.10.2018
Сообщения
1 110
Благодарностей
195
Баллы
63

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