У меня есть приложение Silverlight, которое взаимодействует с веб-службой REST с помощью класса WebClient. Он отлично работает в IE 8 и Chrome 5, но вызов веб-службы завершается неудачно в Firefox 3.
Я сузил проблему: Firefox 3 меняет заголовок Accept моего HTTP-запроса. вот мой упрощенный код:
// Use the ClientHttp stack.
WebRequest.RegisterPrefix("http://", WebRequestCreator.ClientHttp);
// Call the web service.
var webClient = new WebClient();
webClient.Headers["Accept"] = "application/json";
webClient.DownloadStringAsync(someUrl);
Используя Fiddler для исследования данных о каналах, заголовок запроса заменяется:
GET /1/36497f32-1acd-4f4e-a946-622b3f20dfa5/Content/GetAllTextContentsForUser/0 HTTP/1.1
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Host: localhost:88
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8
Обратите внимание на 2-ую строку «Принять» - она заменена на text / html, xml и другие форматы. Не то, что я ищу - мне совершенно необходимо, чтобы JSON вернулся.
Есть ли способ запретить Firefox изменять мой заголовок Accept?