我正在尝试从 Windows 通用应用程序发出 Http Get 请求并看到奇怪的行为。(不确定它是通用应用程序的事实是否相关)。
有问题的简化代码是这样的:
var client = new HttpClient();
var response = await client.GetAsync("https://storage.googleapis.com/pictureframe/settings.json");
var s = await response.Content.ReadAsStringAsync();
在按预期工作且变量s
包含 json 内容的单元测试或控制台应用程序中。
但是,在我尝试添加该代码的应用程序(面向 Windows 10 构建 10240 的通用 Windows 应用程序)中,原始 http 请求如下所示:
GET https://storage.googleapis.com/pictureframe/settings.json HTTP/1.1
Host: storage.googleapis.com
If-Modified-Since: Sun, 27 Dec 2015 18:00:08 GMT
If-None-Match: "5c43f7f07270bda3b7273f1ea1d6eaf7"
Connection: Keep-Alive
标题If-Modified-Since
正确地导致谷歌返回304 - not modified
,所以我没有得到任何 json 文件。问题是我没有添加该标题,我也无法弄清楚它被添加到哪里以及如何停止它。
是否存在可以预料到这种情况的情况,如果是,如何控制这种行为。