C# WebClient restful删除
我有一个简单的Restful服务正在从控制台应用程序调用,所以我使用C# WebClient restful删除,c#,httpwebrequest,webclient,C#,Httpwebrequest,Webclient,我有一个简单的Restful服务正在从控制台应用程序调用,所以我使用WebClient。我想知道这个要求删除的电话是否正确 url看起来像localhost/RestService1/Person/1 using (var client = new WebClient()) { client.UploadString(url, "DELETE", ""); } 我不喜欢UploadString没有数据参数就没有重载。传递空参数对我来说不太合适。
WebClient
。我想知道这个要求删除的电话是否正确
url看起来像localhost/RestService1/Person/1
using (var client = new WebClient())
{
client.UploadString(url, "DELETE", "");
}
我不喜欢UploadString
没有数据
参数就没有重载。传递空参数对我来说不太合适。是否有更好的方法用于删除
我可以使用WebRequest
,但我只想使用WebClient
保持一致
这是WebRequest
块
var request = WebRequest.Create(url);
request.Method = "DELETE";
var response = (HttpWebResponse)request.GetResponse();
两个模块都很好,但什么是最好的?或者有更好的方法吗?WebClient类不太适合restful api的使用,我使用过类似于过去的第三方库,它们更适合这种类型的web请求。我很确定RestSharp只是暗中使用了HttpWebRequest,但它提供了大量语义,使使用和重用rest资源变得更容易。去获取Microsoft.Net.Http客户端库吧
HttpClient是一个更好的用于使用API的客户端。以下内容适合我:
client.UploadValues(url, "DELETE", new NameValueCollection());
对不起,这是我在vb.net中的解决方案,我相信任何人都可以翻译成c# 删除标题是非常重要的,我必须对标题中的Accept和Content类型进行注释,并且工作良好。。。。。我当然寄了代币
Dim rest As WebClient = New WebClient()
rest.Headers.Add(HttpRequestHeader.Authorization, "Bearer " & Token)
'rest.Headers.Add(HttpRequestHeader.Accept, "application/json")
'rest.Headers.Add(HttpRequestHeader.ContentType, "application/json")
result = System.Text.Encoding.UTF8.GetString(rest.UploadValues(host_api & uri, "DELETE", New NameValueCollection()))
另请参见:另请参见:除了这些引用中与DELETE和RESTful的关系之外,我认为
WebClient
并没有真正给出DELETE的语义Webclient
只是在封面下使用WebRequest
(HttpWebRequest
),因此我认为直接使用HttpWebRequest
)更具可读性。我不认为前两个链接涉及我的问题。我的url是localhost/RestService1/Person/1,其中/1是个人Id,因此它是restful的。我做了更多的挖掘,发现WebClient主要是一个包装器。感谢我将WebClient与Newtonsoft Json结合使用,使用起来非常简单。我会调查的。感谢Visual Studio 2010不支持此软件包,仅当使用使用此软件包的库时,针对.NET Framework 4.5或.NET for Windows应用商店应用的项目才需要此软件包。@juFo VS2010和.NET 4.0支持此软件包。我不知道你为什么会有不同的想法。我只是引用了你提供的链接:@jufoaaah。不幸的是,自从我发布后,该链接的内容发生了变化!这是HttpClient的预发布“便携库”版本。如果您选择稳定的版本,您将获得一个与.net 4/VS2010兼容的版本。HttpClient的使用非常笨拙,因为它只包含异步方法(这并不总是可取的)。此外,MS docs表示,HttpClient不是WebClient的替代品。如果您需要提供其他参数(例如api_键),您可以通过url.client.UploadString(url,“DELETE”,string.Empty)中的查询字符串提供这些参数