zl程序教程

您现在的位置是:首页 >  后端

当前栏目

C# POST XML(修正中文乱码问题)

c#中文XML 乱码 post 修正 问题
2023-09-14 09:03:15 时间
/// param name="v_strURL" 目标Url /param /// param name="v_objXMLDoc" 需要发送的数据(XmlDocument格式的) /param /// returns 服务器响应 /returns public static XmlDocument PostXMLTransaction(string v_strURL, XmlDocument v_objXMLDoc) //set max enough to avoid http request is used out - avoid dead while get response ServicePointManager.DefaultConnectionLimit = 200; XmlDocument XmlResponse = null; HttpWebRequest req; HttpWebResponse rep = null; Stream reqStream = null; //创建一个流对象(用来读取响应对象的内容) Stream repStream = null; XmlTextReader objXmlReader; //垃圾回收 System.GC.Collect(); req = (HttpWebRequest)WebRequest.Create(v_strURL); # region Start HttpRequest byte[] bytes; //传递的值 bytes = Encoding.UTF8.GetBytes(v_objXMLDoc.InnerXml); //传递的方法,必须要写,而已Get必须大写。 req.Method = "POST"; req.ContentLength = bytes.Length; //表头的格式必须要写,否则请求响应的页面得不到要传递的值 req.ContentType = "text/xml;encoding=utf-8"; //把传递的值写到流中 reqStream = req.GetRequestStream(); reqStream.Write(bytes,0,bytes.Length); //必须要关闭请求 reqStream.Close(); #endregion End HttpRequest //创建一个响应对象,并从请求对象中得到响应对象的事例。 rep = (HttpWebResponse)req.GetResponse();//此时程序才开始向目标网页发送Post请求 //rep = req.GetResponse() as HttpWebResponse; #region Start HttpResponse //HttpStatusCode.OK,指示请求成功,且请求的信息包含在响应中 if (rep.StatusCode == HttpStatusCode.OK) //得到回应过来的流 repStream = rep.GetResponseStream(); //Load response stream into XMLReader objXmlReader = new XmlTextReader(repStream); XmlDocument xmldoc = new XmlDocument(); xmldoc.Load(objXmlReader); XmlResponse = xmldoc; objXmlReader.Close(); //响应关闭,要不会占用网络资源 rep.Close(); #endregion catch (WebException we) //异常处理 catch (Exception ex) //异常处理 finally //关闭连接 reqStream.Close(); repStream.Close(); rep.Close(); //释放对象 objXmlReader = null; reqStream = null; repStream = null; rep = null; //objHttpWebRequest = null; if (req!= null) req.Abort(); return XmlResponse; #endregion

将XmlDocument转化为string函数
1、Content-Type:很多时候无法解析就是Content-Type的问题。如果本身就是xml文件,请跳过这一步 动态生成的XML一定要将其设置为text/xml,否则默认就是text/html也就是普通的文本了。 2、HttpWebRequest在初始化的时候要先根据url进行创建,然后再设置Method和ContentType,然后再将请求的内容写进去,通过GetRequestStream来返回流,再向这个流中写请求内容便可以了。再通过request对象的GetResponse方法返回response对象,最后得到返回的数据流,这是通过GetResponseStream方法返回的,最后从这个流中读出返回的数据便ok了。
3、ServicePointManager.DefaultConnectionLimit Property:Gets or sets the maximum number of concurrent connections allowed by a ServicePoint object. 原文地址 C#中的AS、IS运算符与强制类型转换


提交(post)xml文件给指定url的2种方法 原文:提交(post)xml文件给指定url的2种方法 1  这段代码是在网上搜到的,拿来共享,项目正好要用到。其中的data你只需要传递一个xml字符串就可以 protected   string   PostXmlToUrl(string   url,string   data)     { ...
ASP.NET通过http/https的POST方式,发送和接受XML文件内容 本文转载:http://hi.baidu.com/ysyhyt/item/5011ae39ce3cf49fb80c0395 本文参考:http://blog.csdn.net/ououou123456789/article/details/8672962 Response.End();//这一步是关键,不输出带Html标签的内容。
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://lavasoft.blog.51cto.com/62575/347157 HttpClient4 Post XML到一个服务器上 现在网上介绍的HttpClient基本上全是3.x版本的内容,HttpClient4的API变化相对3已经变化很大,对HttpClient4做了简单的研究后,完成了一个HttpClient4 Post XML功能。