Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/299.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# 加载和解析存储在文件中的HTTP响应_C#_Http_Web_Httpwebrequest_Httpwebresponse - Fatal编程技术网

C# 加载和解析存储在文件中的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请求的响应。它看起来像这样:

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来伪造请求。

可能重复: