VSO git API を理解しようとしています。次のように Get リクエストを成功させました。
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 を application/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 に渡します。私はそれを行う別の方法を考えることはできません。
お時間をいただきありがとうございます!