Я пытаюсь понять VSO git API. Я сделал получать запросы так успешно, как:C# HttpClient PostAsync с параметром JSON для VSO git API
using (var response = client.GetAsync(
uri).Result)
{
response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
ResponseInfo.Text = JsonHelper.FormatJson(responseBody);
}
Я делаю это после установки client.DefaultRequestHeaders для базовой аутентификации и MEDIATYPE к применению/JSON.
Для почтовых запросов, документации VSO показывает это:
Я понимаю, что параметры JSON. Однако я не уверен, как передать это в запрос на отправку в C#. Я попытался следующие:
string content = @"{
""refUpdates"": [
{
""name"": ""refs/heads/master"",
""oldObjectId"": ""*old object id*""
}
],
""commits"": [
{
""comment"": ""Test commit"",
""changes"": [
{
""changeType"": ""edit"",
""item"": {
""path"": ""/foo.txt""
},
""newContent"": {
""content"": ""test"",
""contentType"": ""rawtext""
}
}
]
}
]
}";
var stringToJson= new JavaScriptSerializer();
var JSONoutput = stringToJson.Deserialize<object>(content);
StringContent stringContent = new StringContent(JSONoutput.ToString(), Encoding.UTF8, "application/json");
, а затем я прохожу, что в к
using (var response = client.PostAsync(uri, stringContent).Result)
{
response.EnsureSuccessStatusCode();
var responseBody = await response.Content.ReadAsStringAsync();
Console.WriteLine(responseBody);
}
Я получаю 400 Bad Request ошибку. Я правильно передаю свои параметры? По сути, я беру строчную версию того, что дал мне учебник, конвертирует его в JSON, десериализует его, конвертирует в HTTPContent и передает в PostAsync. Я не могу придумать другого способа сделать это.
Благодарим вас за внимание!