【发布时间】:2018-12-26 14:20:54
【问题描述】:
我花了几乎一整天的时间来弄清楚如何最好地完成标题中提到的任务。
这是我目前发现的:
至少有一个库为 .NET CF 提供开箱即用的 TLS 1.2。缺点:他们收取许可证费用。如果有人对这个简单的解决方案感兴趣,Rebex Library
有几个 SSL/TLS 库允许与较低级别的服务器通信。我的方法是为我完成的 .NET Compact Framework 编译 BouncyCastle 库。
从这里开始,我发现一篇文章向我展示了如何实现 BouncyCastle 接口以及如何将各个部分组合在一起。有关更多信息,请参阅Making HTTPS call in C# with the BouncyCastle library。这就是我的代码现在的样子。
我完成了与服务器的连接并发送了一个请求,我也得到了预期的响应。然后我想利用 HttpWebRequest 类,这样我就不必自己编写 HTTP 请求了。或者我是这么想的。不可能。 HttpWebRequest 没有公共构造函数。因此我不能从那个类继承。 例如,我也尝试过使用 RestSharp 但这也仅依赖于 WebRequest 类。基本上所有可用的 HTTP 客户端都使用 Uri,然后自己打开一个流。似乎没有一个人使用已经打开的流并写入它或提供一些加密 API 来使用,而不是默认提供的平台(当然除了提到的 Rebex 库)。
所以我的问题是:是否有任何 HTTP 客户端可以将 HTTP 命令写入已经打开的流,或者至少给我一个字符串表示我在上面设置的内容?还是我必须自己编写类似的代码,即使已经有很多这样的实现?还是我完全错过了一点,可以更容易地解决?
【问题讨论】:
标签: c# compact-framework bouncycastle .net-cf-3.5