如何使用补丁方法异步httpclient

时间:2018-04-18 16:38:26

标签: c# azure-devops

我正在尝试使用[此API](https://docs.microsoft.com/en-us/rest/api/vsts/release/approvals/update)。下面是我的代码,但我收到400个错误的请求。

MyQObject obj;
obj.db = 11.1;
QVariant value = QVariant::fromValue(obj);

std::string t = value.typeName();
int id = QMetaType::type(t.c_str());
void* v = QMetaType::create(id, value.constData());
obj_ptr = static_cast<QObject*>(v);
QJsonValue json = ToJson(obj_ptr); //json contains db = 11.1

1 个答案:

答案 0 :(得分:2)

由于您只提供部分代码,因此我在下面发布了我的代码(可以成功更新批准)以供您参考:

@import "modules/some_css";

引用博客Using ReleaseManagement REST API’s

注意:您只能更新状态为public static async void ApproveRelease() { try { var username = "alternate auth or PAT"; var password = "password"; string accountName = "https://account.visualstudio.com"; string projectName = "projectname"; int approvalid = id; var approveReleaseUri = "https://accountname.vsrm.visualstudio.com/projectname/_apis/release/approvals/approvlID?api-version=4.1-preview.3"; using (HttpClient client = new HttpClient()) { client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String( System.Text.ASCIIEncoding.ASCII.GetBytes( string.Format("{0}:{1}", username, password)))); var method = new HttpMethod("PATCH"); string approvveReleaseMetaData = "{\"status\":\"approved\", \"comments\":\"Good to go\"}"; var request = new HttpRequestMessage(method, string.Format(approveReleaseUri, accountName, projectName, approvalid, apiVersion)) { Content = new StringContent(approvveReleaseMetaData, Encoding.UTF8, "application/json") }; using (HttpResponseMessage response = client.SendAsync(request).Result) { response.EnsureSuccessStatusCode(); string responseBody = await response.Content.ReadAsStringAsync(); } } } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } 的发布审批。如果您尝试更新批准状态为pendingapproved的版本审批,您还会收到rejected响应。