gpt4 book ai didi

silverlight - Silverlight WebClient接受 header 在Firefox 3中被覆盖

转载 作者:行者123 更新时间:2023-12-02 04:14:40 25 4
gpt4 key购买 nike

我有一个Silverlight应用程序,该应用程序使用WebClient类与REST Web服务对话。它在IE 8和Chrome 5中运行良好,但是在Firefox 3中,Web服务调用失败。

我已经解决了这个问题:Firefox 3正在更改HTTP请求的Accept header 。这是我的简化代码:

// 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调查管道上的数据,请求将其 header 替换为:
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

请注意第二行“接受”-已被text / html,xml和其他格式替换。不是我要找的东西-我绝对需要JSON返回。

是否可以防止Firefox修改我的Accept header ?

最佳答案

事实证明,所有浏览器都将覆盖Accept header 。 IE和Chrome使用“* / *”(星号斜杠)的值覆盖Accept header 。 Firefox使用一些奇怪的值覆盖它,其中包括XML。

这个问题的答案是,您不能期望保留您的Accept header 。即使您使用ClientHttp,浏览器也会覆盖Accept header 。

关于silverlight - Silverlight WebClient接受 header 在Firefox 3中被覆盖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3408656/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com