How do you send a patch request from a c# client?

烂漫一生 提交于 2019-12-23 00:51:32

问题


I have a powershell script that does this :

    $uri = "$($tfsUri)/$($teamproject)/_apis/build/builds/$($buildID)?api-version=2.0"
    $data = @{keepForever = $keepForever} | ConvertTo-Json
    $response = $webclient.UploadString($uri,"PATCH", $data) 

I'm trying to rewrite this in C#, using a Webclient.

WebClient client = new WebClient();
client.Encoding = System.Text.Encoding.UTF8;
string reply = client.UploadString(url, "keepForever = true");
Console.WriteLine(reply);

But I get : The remote server returned an error: (401) Unauthorized.

This is TFS 2015 VNext, if that helps.


回答1:


You are missing the METHOD in your call to UploadString.

string reply = client.UploadString(url, "keepForever = true");

should be:

string reply = client.UploadString(url, "PATCH", "keepForever = true");

A 401 is unauthorised, so also see if there is a step before in your Powershell where you are logging in or joining a session, you would need to replicate that in your C#.




回答2:


In order to send a PATCH request you can use WebClient.UploadData.

string data = "keepForever = true";
WebClient client = new WebClient();
client.Encoding = System.Text.Encoding.UTF8;
string reply = client.UploadData(url, "PATCH", System.Text.Encoding.UTF8.GetBytes(data));
Console.WriteLine(reply);


来源:https://stackoverflow.com/questions/38583551/how-do-you-send-a-patch-request-from-a-c-sharp-client

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!