Я создаю приложение, в котором пользователи могут оставлять сообщения и многое другое. Я могу опубликовать проблему через Postman, используя базовую аутентификацию и опубликовав это сырое приложение / json. В настоящее время я учусь на 3-м курсе обучения программисту, поэтому я такой нуб ....
ОБНОВЛЕНИЕ ОБНОВЛЕНИЕ Я исправил это :). Это был файл данных. Это должно работать, если вы используете его. Я также добавил метод GetEncodedCredentiels, чтобы вы также могли его использовать. Спасибо всем за помощь !!
ОБНОВЛЕНИЕ Я добился прогресса, с помощью этого метода я получаю через базовую аутентификацию недопустимую ошибку. Но ... У меня все еще есть ошибка 400 Bad запроса. Код теперь:
public async Task<string> PostIssueAsync(string username, string password)
{
string data = @"{
""fields"": {
""project"":
{
""key"": ""TEST""
},
""summary"": ""test"",
""description"": ""Creating an issue while setting custom field values via projhect"",
""issuetype"": {
""name"": ""Fault""
}
}
}";
HttpClient client = new HttpClient();
client.BaseAddress = new System.Uri(Constants.JiraUrl + "rest/api/latest/issue");
var cred = GetEncodedCredentials(username, password);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", cred);
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(data, Encoding.UTF8, "application/json");
content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var response = client.PostAsync(client.BaseAddress, content).Result;
if (response.IsSuccessStatusCode)
{
}
else
{
var test = response.Content.ReadAsStringAsync().Result;
}
return "";
}
Метод GetEncodedCredentiels:
private static string GetEncodedCredentials(string userid, string password)
{
string mergedCredentials = string.Format("{0}:{1}", userid, password);
byte[] byteCredentials = UTF8Encoding.UTF8.GetBytes(mergedCredentials);
return Convert.ToBase64String(byteCredentials);
}