Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用HttpWebRequest/Response构建.NETREST客户端有什么缺点吗_C#_Rest_Httpwebrequest_Client - Fatal编程技术网

C# 使用HttpWebRequest/Response构建.NETREST客户端有什么缺点吗

C# 使用HttpWebRequest/Response构建.NETREST客户端有什么缺点吗,c#,rest,httpwebrequest,client,C#,Rest,Httpwebrequest,Client,我想用C#构建一个.NETREST客户端,虽然我在这里读了很多关于REST的常见实践的文章,但我还是不能确定一些事情。我已经阅读了很多REST客户机示例,其中大多数只是使用HttpWebRequest/Response类来发出请求和接收响应。我想问的是,如果我仅仅以这种方式使用REST服务,您认为它的缺点是什么。我以前没有使用过WCF,我也不太了解它,所以我自己无法进行比较 使用这个REST客户端,我将获取、更新、向设备发布一些数据。因此,除了开发的简单性或复杂性之外,我最关心的是性能。您认为W

我想用C#构建一个.NETREST客户端,虽然我在这里读了很多关于REST的常见实践的文章,但我还是不能确定一些事情。我已经阅读了很多REST客户机示例,其中大多数只是使用HttpWebRequest/Response类来发出请求和接收响应。我想问的是,如果我仅仅以这种方式使用REST服务,您认为它的缺点是什么。我以前没有使用过WCF,我也不太了解它,所以我自己无法进行比较

使用这个REST客户端,我将获取、更新、向设备发布一些数据。因此,除了开发的简单性或复杂性之外,我最关心的是性能。您认为WCF中的HttpClient会产生有意义的变化吗


Thx提前…

我认为不会有显著的性能差异。然而,通过简单地使用HttpWebRequest和Response,您将得到非常复杂的代码。对于小型应用程序来说,这是可以的,但是对于更高级的应用程序,您很快就会得到无法维护的代码。使用这种原始方法,您需要自己实现REST哲学。相反,WCF已经为您准备好了,您只需要关注您的应用程序。

WCF REST初学者工具包中的HttpClient基于HttpWebRequest和HttpWebResponse。它对WCF的唯一依赖性是与扩展Dll中的HttpContent扩展方法

我建议使用Microsoft.Http.HttpClient,因为它为正确执行Http添加了大量功能。所有HTTP头都有包装器。HttpContent类负责从请求和响应流进行读写。它将缓冲响应,以便您可以多次读取响应。它支持使异步调用变得更容易


如果您遵循使用扩展方法转换为本机数据格式的模式,您会发现该库非常容易使用。

WCF在客户端没有“实现REST理念”的功能。不过,HttpClient确实使正确使用HTTP变得更容易。但是,您可以对任何REST接口使用HttpClient,不需要WCF。