C# 加载和解析存储在文件中的HTTP响应
我有一个本地存储的文件,其中包含http请求的响应。它看起来像这样:C# 加载和解析存储在文件中的HTTP响应,c#,http,web,httpwebrequest,httpwebresponse,C#,Http,Web,Httpwebrequest,Httpwebresponse,我有一个本地存储的文件,其中包含http请求的响应。它看起来像这样: HTTP/1.1 200 OK Accept-Ranges: bytes Access-Control-Allow-Credentials: true Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept Access-Control-Allow-Origin: http://www.pokemon.com Cache-Cont
HTTP/1.1 200 OK
Accept-Ranges: bytes
Access-Control-Allow-Credentials: true
Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Origin: http://www.pokemon.com
Cache-Control: max-age=3600, public
Content-Type: image/png
Date: Tue, 19 Apr 2016 17:33:04 GMT
Etag: "2542947452"
Expires: Tue, 26 Apr 2016 17:33:04 GMT
Last-Modified: Wed, 04 Jun 2014 14:59:14 GMT
Server: ECAcc (dca/247E)
X-Cache: HIT
Content-Length: 335685
‰PNG
IHDR õ V ±NÛ‘ pHYs šœ cHRM z% €ƒ ùÿ €é u0 ê` :˜ o’_ÅF ËIDATx ÿÿ ÿâd ÿ ÿ _ n ÿ # ÿ ÿ ÿ ÿÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ
我需要提取该负载并将其存储在单独的文件中(在本例中为png文件)
我不知道如何在内存中加载它,然后在HttpWebResponse或类似文件中相应地解析它,因此我可以轻松访问属性
我想我可以使用WebRequest.Create打开该文件,但我显然遗漏了其他内容,因为它只接受url。有人能给我一些提示吗?正如您所猜测的,这是一个原始的HTTP响应。标题后面有一个空行,其余的是实体负载。如果将有效载荷部分保存到一个文件中,那将是一个PNG,它应该是代码> 335685 字节长(或者,换一种方式,去掉空行和上面的所有东西)。我花了一些时间研究System.Net.Http HttpWebResponse是如何创建的,但我看不到从流构造响应的简单方法 是创建和解析HttpResponseMessage的地方,它似乎与表示底层网络套接字而不是IO.Stream的SafeWinHttpHandle紧密耦合 我看到的大多数测试用例都会构造一个响应,或者解析一行,而不是整个响应 我认为重用System.Net.Http响应解析器的最佳选择是创建一个返回文件的回圈套接字。和HttpClient来伪造请求。可能重复: