1. 程式人生 > >C# POST XML(修正中文亂碼問題)

C# POST XML(修正中文亂碼問題)

        #region 傳送xml檔案給指定網址
        /// <summary>
        /// 傳送xml檔案給指定網址
        /// </summary>
        /// <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);
            try
            {
                # 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
小注: 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# POST XML修正中文亂碼問題

#region 傳送xml檔案給指定網址 /// <summary> /// 傳送xml檔案給指定網址 /// </

node——6-響應資料型別 Content-Type解決中文亂碼

在服務端預設傳送的資料,其實是 utf-8 編碼的內容,但是瀏覽器不知道你是 utf-8 編碼的內容 瀏覽器在不知道伺服器響應內容的編碼的情況下會按照當前作業系統的預設編碼去解析 中文作業系統預設解析是 gbk 解決方法就是正確的告訴瀏覽器傳送的編碼格式,在 h

JAVA+ibatis+DB2:blob型別欄位如何處理解決中文亂碼

(一)JAVA類 將資料庫中blob型別對映為JAVA中的byte[]型別 (二)XXXDAO.xml XXXDAO.xml中的<resultMap>節點寫法如下: <result property="remark1" column="REMARK_1"

java 重定向引數中文亂碼

            java在servlet中使用重定向response.sendRedirect時,連結中的引數列表為中文時將會獲取不到引數資料。 解決方案為:將引數轉化為iso-8859-1編

android 文字檔案的正確寫入防止中文亂碼

android文字檔案寫入流程 1,寫入檔案的路徑 2,獲取寫入流 3,寫入資料,記得轉換格式(UFT-8在android不能用,只能用gbk) 開始寫程式碼: 首先根據檔案地址判斷檔案是否存

C#-XML文件提取字符串+字符串存為XML文件+創建XML自定義節點文件+讀取節點內容

cts ted set clas desc format view nav child 一、將字符串寫入xml文件(並保存) 寫入: XmlDocument xdoc = new XmlDocument(); xdoc.LoadXml(“xmlstring”); 保存

JSP的學習三中文亂碼

使用 cal cto con ebo char tom har 信息 1). 在 JSP 頁面上輸入中文, 請求頁面後不出現亂碼:   保證 contentType="text/html; charset=UTF-8",   pageEncoding="UTF-8" c

eclipse編碼格式中文亂碼

eclipse編碼 ima lips clas IE ces 工作 self source https://jingyan.baidu.com/article/2009576193ee38cb0721b416.html 修改工作空間默認編碼 1 進入Eclipse,

Tmocat的service.xml配置文件詳解中文翻譯

bean ssl eth call 項目 redirect 類型 describe update Tmocat的service.xml配置文件 英文原版 中文手譯 <?xml version=‘1.0‘ encoding=‘utf-8‘?&g

JSP-tomcat設定編碼格式 配置utf-8以防網頁框以及網頁顯示的時候中文亂碼

JSP-tomcat設定編碼格式 配置utf-8(以防網頁框以及網頁顯示的時候中文亂碼) 關鍵詞: tomcat配置utf-8 解決網頁中文亂碼 tomcat中server.xml配置編碼格式 jsp中設定了charset是UTF-8,但瀏覽器仍然顯示亂碼

C# 簡單POST請求 同時防止中文亂碼的出現

form EDA class 請求 sta trre orm amr 亂碼 實現POST網絡請求方法 public static string HttpPost(string url,string postDataStr) { string

Ubuntu中文輸入法崩潰問題候選框亂碼

1.刪除.config資料夾下的配置檔案 cd ~/.config rm -rf SogouPY SogouPY.user sogou-qimpanel 檢查一下 確保刪乾淨了 重啟電腦 2.重啟fcitx killall fcitx killall sogou-qimpanel

C#-XML檔案提取字串+字串存為XML檔案+建立XML自定義節點檔案+讀取節點內容

一、將字串寫入xml檔案(並儲存) 寫入:  XmlDocument xdoc = new XmlDocument();  xdoc.LoadXml(“xmlstring”); 儲存:  xdoc.Save(“pathsave.xml”) 二、將

C#解析XML

這篇說的細一點吧,好像從網上哪看來的,當時給記到本本上了,現在整理一下下,致敬~~ xml案例如圖 <?xml version="1.0" encoding="utf-8"> <PFather xmls="" name=""> <Pe

對於mysql資料庫中文亂碼問題的解決在所有的編碼都是utf-8的情況下中文亂碼

在寫jdbc連結mysqll資料庫時,向其中插入中文資料出現亂碼。查看了所有的配置,都是utf-8編碼,my.ini配置檔案也修改好了,還出現這樣的亂碼,實屬不應該。 在各種部落格論壇查詢,都是修改資料庫的編碼的套路,其中也不乏有在連線資料庫的連結url中加編碼的,比如:“jdbc:mysql:

libxml2程式設計--C語言xml1

1、下載與安裝LIBXML2 Libxml2是一個C語言的XML程式庫,可以簡單方便的提供對XML文件的各種操作,並且支援XPATH查詢,以及部分的支援XSLT轉換等功能。Libxml2的下載地址是http://xmlsoft.org/,完全版的庫是開源的,並且帶有例子程式和說明文件。最好將這個庫

java十六進位制轉換為字串解決中文亂碼問題

  // 轉化十六進位制編碼為字串 public static String toStringHex2(String s) { byte[] baKeyword = new byte[s.length() / 2]; for (int

Tomcat 釋出檔案下載解決中文亂碼問題

1. 配置檔案conf/web.xml:         <init-param>             <param-name>listings</param-name>             <param-value>

CentOS 7下MySQL5.7的修改字符集編碼為UTF8解決中文亂碼問題

【From:】http://www.2cto.com/database/201311/255324.html 一、登入MySQL檢視用show variables like 'character%';下字符集,顯示如下: 1 2 3 4 5 6 7 8 9 10 11

Unicode字符集下CString與char *轉換 解決中文亂碼

1、Unicode下CString轉換為char * 方法一:使用API:WideCharToMultiByte進行轉換              CStringstr = _T("D:\\校內專案\\QQ.bmp");             //注意:以下n和l