首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法读取httpwebresponse

无法读取httpwebresponse
EN

Stack Overflow用户
提问于 2012-11-21 08:59:20
回答 2查看 1.3K关注 0票数 1

当我试图反序列化一个when响应时,我会得到一个无效操作异常。

在这个webresponse中,我得到了一个XML页面,它通过https发送。我的代码所做的基本上是发送一个获得登录-cookie的get请求,然后是另一个获取XML页面的请求,然后我对该页面进行反序列化。

当我试图反序列化时会出现问题,它会给出以下错误:

代码语言:javascript
复制
There is an error in XML document (1, 1).

首先,我查看了我的webresponse,看看它是否有正确的数据。因此,我将我的webresponse放到了流读取器中,并使用readToEnd将其转换为string。就像这样:

代码语言:javascript
复制
dim myStringResult as String = myStreamReader.ReadToEnd()

它给了我一些字母、数字和积木。所以我认为我得到的反应是问题所在。我用Fiddler检查了它,发现在看到内容之前需要对响应进行解码(是的,它确实有我想要的正确的响应)。我更深入地了解了这个例外,并看到它说

代码语言:javascript
复制
hexadecimal value 0x1F, is an invalid character. Line 1, position 1

我试着查看System.Text.Encoding,但是找不到十六进制的任何东西。有人能帮我吗?

编辑:可能我必须解码它,因为它是https响应,而不是因为它是十六进制编码的。

edit1:我试过HttpUtility.HtmlDecode,不幸的是它没有改变字符串。

edit2:我得到的数据示例

{�U�r�0��+(g���(J��ԙ$�k;IomR&�I�N?���/�6���L�^`���)

它不能正确显示数据。它应该大部分是方形的。有时你会看到

编辑:标题

内容处理::附件;filename="document.xml“CachingModuleShouldWork:真正的内容-语言: en-US差异:接受-编码,用户-代理 内容长度: 382内容类型: application/xml

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-21 09:15:20

0x1f是Windows控件字符。它不是有效的XML。

您需要首先使用类似于HttpUtility.Decode的方法对其进行解码

因此:获取您的响应并使用StreamReader将其读入字符串,然后执行以下操作:

代码语言:javascript
复制
StringWriter myWriter = new StringWriter();
         // Decode the encoded string.
         HttpUtility.HtmlDecode(myEncodedString, myWriter);
票数 2
EN

Stack Overflow用户

发布于 2012-11-21 09:11:55

如果您正在解码从web上读取的内容,我建议您检查以下内容:

HttpUtility.HtmlDecode方法(字符串)

编辑:类似的问题

十六进制值0x1F是无效字符。第1行,位置1

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13489609

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档