我收到这样的错误。 无法显示XML页面 无法使用样式表查看XML输入。请更正错误,然后单击“刷新”按钮,或稍后重试。 在按钮单击我写了这个。
String strUrl = "https://secure.dev.gateway.gov.uk/submission";
HttpWebRequest req = ( HttpWebRequest )WebRequest.Create( strUrl );
req.ContentType = "text/xml";
req.Method = "POST";
req.Accept = "text/xml";
req.PreAuthenticate = true;
req.Credentials = new NetworkCredential("189", "");
req.UseDefaultCredentials = true;
System.IO.Stream stream = req.GetRequestStream();
string strXML = GetXmlString("C:\\Documents and Settings\\com\\My Documents\\Downloads\\18march\\VatDecRequest_ValidSample v1.0.xml");
byte[] arrBytes = System.Text.ASCIIEncoding.ASCII.GetBytes( strXML );
stream.Write( arrBytes, 0, arrBytes.Length );
stream.Close();
WebResponse resp = req.GetResponse();
Stream respStream = resp.GetResponseStream();
StreamReader rdr = new StreamReader( respStream, System.Text.Encoding.ASCII );
Response.ContentType = "text/xml";
string strResponse = rdr.ReadToEnd();
XmlDocument xmldoc = new XmlDocument();
xmldoc.LoadXml(strResponse);
xmldoc.Save("C:\\test9.xml");
答案 0 :(得分:2)
为什么要将文件作为字符串加载然后以ASCII格式编码?为什么不加载二进制数据并直接提供? (File.ReadAllBytes
可能是你的朋友。)
我怀疑XML文件在UTF-8中实际上是 ,很可能带有字节顺序标记,无法用ASCII表示。
请求和响应都是一样的 - 在可行的情况下,只需让XML解析器处理二进制流并找出自己的编码。