我有一個Silverlight應用程序使用WebClient類與REST Web服務對話。它在IE 8和Chrome 5中運行良好,但Firefox 3中的Web服務調用失敗。Silverlight WebClient在Firefox中覆蓋Accept頭3
我已經縮小了問題範圍:Firefox 3正在更改我的HTTP請求的Accept標頭。這裏是我的簡化代碼:
// 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);
使用招來調查管道中的數據,要求有其標題改爲:
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
通知二號線,「接受」 - 它被替換文本/ html,xml和其他格式。不是我在找什麼 - 我絕對需要JSON回來。
有沒有辦法阻止Firefox修改我的Accept頭?
OK - 所有瀏覽器都會替換接受字符串。 IE和Chrome將其替換爲「*/*」,而Mozilla引入上面列出的那種時髦的字符串:http://developer.yahoo.com/dotnet/silverlight/2.0/requestheaders.html – 2010-08-04 20:14:44
我希望我的Web服務調用接受JSON,而不是XML,該死。幫幫我! – 2010-08-04 20:15:19