ETag не возвращается заголовком WebResponse в c # - PullRequest
1 голос
/ 09 марта 2012

Я пытаюсь извлечь ETag из заголовка ответа. Это существует в ответе. Я вижу это с помощью firebug и вижу его в объекте ответа с помощью инспектора:

Status: 200 OK
X-Api-Version: 1.3.2
Access-Control-Allow-Origin: *
X-Runtime: 0.151298
Connection: keep-alive
Content-Length: 8185
Cache-Control: public, max-age=11216
Content-Type: application/json; charset=utf-8
Date: Fri, 09 Mar 2012 01:40:05 GMT
Expires: Fri, 09 Mar 2012 04:47:01 GMT
ETag: "bd3fe1123a8f55e01ca859f4804e8fbe"
Last-Modified: Fri, 09 Mar 2012 00:47:01 GMT
Server: nginx/1.0.11

Весь остальной код работает нормально, делает HttpWebRequest, получает Respose и т. Д. Единственная проблема в том, что я всегда получаю нулевое значение при попытке получить ETag (который существует в заголовке ответа).

Вот упрощенный код:

        var request = (HttpWebRequest)WebRequest.Create(validUri);
        SetHeaders(); // helper function to set basic headers.
        var response = request.GetResponse();

        var stream = response.GetResponseStream();
        var reader = new StreamReader(stream);
        var result = reader.ReadToEnd();

        var etag = response.Headers.Get("ETag");

Кто-нибудь знает, почему я не могу извлечь существующий ETag?

1 Ответ

2 голосов
/ 09 марта 2012

Ваш код не воспроизводит описанную проблему.Ваша проблема в том, что вы не упомянули.Вот короткая полная программа на основе вашего кода, которая без проблем выполняет и распечатывает значение ETag:

using System;
using System.IO;
using System.Net;

namespace SO9628006
{
    class Program
    {
        static void Main()
        {
            var request = (HttpWebRequest)WebRequest.Create("http://www.fiddler2.com/Fiddler/Fiddler.css");
            var response = request.GetResponse();

            var stream = response.GetResponseStream();
            var reader = new StreamReader(stream);
            var result = reader.ReadToEnd();

            var etag = response.Headers.Get("ETag");

            Console.WriteLine(etag);

        }
    }
}

Вывод:

"6c3673ba919ec71:243"

Не могли бы вы предоставить короткую, но полную программу , которая иллюстрирует вашу проблему?

...