我有一个程序,它产生了很多HttpWebRequests,我读到了使用gzip压缩来加速响应数据的下载.我知道gzip是什么,以及它是如何工作的,但我不知道它在C#中是如何工作的.
假设我有一个简单的GET请求:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://google.com");
request.Method = "GET";
WebResponse response = request.GetResponse();
Run Code Online (Sandbox Code Playgroud)
如何在gzip中压缩响应数据?如何显示压缩大小,然后显示未压缩的大小?
谢谢
所以我正在制作一个几乎可以制作批量HttpWebRequests的程序.在这个程序中,速度是主要的.如果我能找到将HttpWebRequests增加甚至毫秒的方法,那就非常好了.
好的,我的问题是这样的:我有一个方法对一个站点发出HttpWebRequest(GET请求),另一个方法是对一个主机发出一个POST HttpWebRequest(略有不同的URL,但是同一个主机),这个方法叫做AFTER每隔一段时间使用第一种方法.
在我的第一个方法(GET请求,假设方法A)中,我在读取响应主体后关闭了WebResponse.让这个WebResponse保持打开状态,然后调用POST方法(让我们说方法B),或者我应该如何实现它,从方法A关闭WebResponse是不是更快?
示例代码:
public string MethodA()
{
// Make a HttpWebRequest to a URL like: xxxx.yyyy.com
WebResponse response = request.GetResponse();
string x = ReadResponseBody(response);
response.Close();
if(x.Contains("something"))
MethodB();
}
public void MethodB()
{
// Make a POST HttpWebRequest to a URL like: xxxx.zzzz.com (same host).
WebResponse response = request.GetResponse();
response.Close();
}
Run Code Online (Sandbox Code Playgroud)
那么,我应该保留我的代码,关闭MethodA()中的第一个WebResponse,然后调用MethodB(),还是其他什么?
此外,任何人都可以提供一些关于如何提高速度的提示,因为这是我的程序中最重要的事情,我需要尽可能快.
我正在根据我找到的 Python 代码编写一个小程序。有几行我需要帮助。它是关于使用 SHA256 加密的值。
python代码如下:
first = hashlib.sha256((valueOne + valueTwo).encode()).hexdigest()
second = hashlib.sha256(str(timestamp) + value).encode()).hexdigest()
Run Code Online (Sandbox Code Playgroud)
当我执行它时,我的值如下:
first: 93046e57a3c183186e9e24ebfda7ca04e7eb4d8119060a8a39b48014d4c5172b
second: bde1c946749f6716fde713d46363d90846a841ad56a4cf7eaccbb33aa1eb1b70
Run Code Online (Sandbox Code Playgroud)
我的 C# 代码是:
string first = sha256_hash((secret + auth_token));
string second = sha256_hash((timestamp.ToString() + secret));
Run Code Online (Sandbox Code Playgroud)
当我执行它时,我的价值观是:
first: 9346e57a3c183186e9e24ebfda7ca4e7eb4d81196a8a39b48014d4c5172b
second: bde1c946749f6716fde713d46363d9846a841ad56a4cf7eaccbb33aa1eb1b70
Run Code Online (Sandbox Code Playgroud)
如您所见,这些值略有不同。python 代码返回两个长度为 64 个字符的值,其中在 C# 中,值分别为 60 个字符和 63 个字符。
我的 sha256_hash 方法来自这里:获取字符串的 SHA-256 字符串
任何帮助将不胜感激,谢谢。
c# ×3
.net ×1
compression ×1
cryptography ×1
encryption ×1
gzip ×1
python ×1
sha256 ×1
sockets ×1
webrequest ×1
webresponse ×1