Я работаю с API Basecamp, который является API REST (JSON), используя базовую HTTP-аутентификацию через HTTPS.REST JSON GET - 400 Bad Request
Это должно быть запрос GET, но когда я запускаю мой код, используя GET Я получаю:
Не удается отправить контент-тело с этим глаголом типа
Когда я запускаю его как столбу, я получаю:
{ "статус": "400", "ошибка": "Bad Request"}
Кто-нибудь знает, почему это может произойти?
using (var httpClient = new HttpClient()) {
string userName = "[email protected]";
string password = "somepassword";
var credentials = Convert.ToBase64String(Encoding.ASCII.GetBytes(string.Format("{0}:{1}", userName, password)));
httpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", credentials);
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post, "https://correctUrlHere);
requestMessage.Headers.Add("User-Agent", "TheProject ([email protected])");
requestMessage.Content = new StringContent(string.Empty, Encoding.UTF8, "application/json");
var response = await httpClient.SendAsync(requestMessage);
var responseContent = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseContent);
}
В этом коде я явно выгружена имя пользователя, пароль, имя проекта и URL, но в самом коде они все правильно.
Обычно статус 400 указывает, что возникла проблема с переданной полезной нагрузкой. Не так сильно синтаксис, но бизнес-логика на сервере ему не понравилась (неправильные значения параметров, отсутствие параметров, отсутствующий параметр и т. Д.). Обычно это зависит от того, кто реализовал службу, чтобы убедиться, что верный тип ответа возвращен (это может быть даже проблема проверки подлинности, но неверный код ответа). Лучше всего связаться с владельцем API и спросить их. – Igor
Кстати, это [это API] (https://github.com/basecamp/bcx-api), о котором вы говорите? Вы должны попробовать их пример скручивания и посмотреть, можете ли вы подключиться таким образом с вашими учетными данными, таким образом, у вас есть полный самодостаточный пример, который вы могли бы дать, если вы уже застряли там. Также единственное, что я прочитал около 400 на их веб-сайте, - это если вы не предоставляете агент-агент (который вы делаете), но, возможно, его не распознают в своей системе. – Igor