我有以下C#代码:
Uri url = new Uri("http://lu32kap.typo3.lrz.de/mensaapp/exportDB.php?mensa_id=all");
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.UserAgent.TryParseAdd("Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
var content = response.Content;
if(content != null)
{
string result = await content.ReadAsStringAsync();
if (result != null)
{
tblock.Text = result;
}
}
每次运行时,我都会得到 COMException" HRESULT E_FAIL" 。 我能够部分跟踪它。这是由我尝试获取数据的网站造成的,因为如果我将其更改为" https://www.google.de/"它有效。
它在崩溃:
string result = await content.ReadAsStringAsync();
然而,我需要让它与这个网站一起工作,因为它返回了一个用PHP生成的json对象。 有办法解决这个问题吗?
答案 0 :(得分:0)
我在本地运行此代码,最终得到此异常
ContentType中提供的字符集无效。无法阅读 使用无效字符集将内容作为字符串。
它似乎正在返回UTF8
'utf8'不是受支持的编码名称。有关定义的信息 自定义编码,请参阅文档 Encoding.RegisterProvider方法。
您能确保服务器上的输出格式正确吗?也许尝试这个答案: Parsing UTF8 JSON response from server
答案 1 :(得分:0)
解决方案: 这是UTF8编码的问题。我能够建立一个小的解决方法。 感谢Glitch100!
datepart()