簡體   English   中英

在將文件(xml)提交到服務器之后的C#中,獲得了具有一些邊界標題的響應XML

[英]In C# after submit the file(xml) to a server, Got Response XML which have some boundary header

我得到了服務器響應,它有一些標題信息,所以一旦我們試圖獲取節點信息和其他東西,它會因為標題而拋出錯誤。 在這里,我分享了包含頁眉和頁腳的xml。 我不需要這個頁眉和頁腳部分。 在C#.net中,我們刪除它並讀取xml元素。

public string PostXMLData(string destinationUrl, string requestXml)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl);
        string responseStr = string.Empty;
        try
        {
            byte[] bytes;
            bytes = System.Text.Encoding.ASCII.GetBytes(requestXml);
            request.ContentType = "text/xml; encoding='utf-8'";
            request.ContentLength = bytes.Length;
            request.Method = "POST";
            request.UseDefaultCredentials = false;
            request.PreAuthenticate = true;
            request.AllowAutoRedirect = false;

            request.Proxy = new WebProxy(ConfigurationManager.AppSettings["Proxy"], Convert.ToInt32(ConfigurationManager.AppSettings["Port"]));
            request.Headers.Add("Authorization", "Basic " +
                Convert.ToBase64String(Encoding.GetEncoding("utf-8").GetBytes(ConfigurationManager.AppSettings["uid"] + ":" + ConfigurationManager.AppSettings["pass"])));
            request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["uid"], ConfigurationManager.AppSettings["AtomPassword"]);

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();

            HttpWebResponse response;
            response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
            {
                Stream responseStream = response.GetResponseStream();
                responseStr = new StreamReader(responseStream).ReadToEnd();

            }
            responseStr.Remove(0, 195);
        }

------ = _ Part_358888_188888895.1888888888888 Content-Type:application / xop + xml; charset = UTF-8; type =“text / xml”Content-Transfer-Encoding:8bit Content-ID:<1053f721-6e80-4647 -a661-a05a47603796>

xxxxxxxxxxxxxxxxxxxxxxx

------ = _ Part_358888_188888895.1888888888888--

---------預期結果----------- xxxxxxxxxxxxxxxxxxxxxxx

 public string PostXMLData(string destinationUrl, string requestXml)
    {
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(destinationUrl);
        string responseStr = string.Empty;
        try
        {
            byte[] bytes;
            bytes = System.Text.Encoding.ASCII.GetBytes(requestXml);
            request.ContentType = "text/xml; encoding='utf-8'";
            request.ContentLength = bytes.Length;
            request.Method = "POST";
            request.UseDefaultCredentials = false;
            request.PreAuthenticate = true;
            request.AllowAutoRedirect = false;

            request.Proxy = new WebProxy(ConfigurationManager.AppSettings["Proxy"], Convert.ToInt32(ConfigurationManager.AppSettings["Port"]));
            request.Headers.Add("Authorization", "Basic " +
                Convert.ToBase64String(Encoding.GetEncoding("utf-8").GetBytes(ConfigurationManager.AppSettings["uid"] + ":" + ConfigurationManager.AppSettings["pass"])));
            request.Credentials = new NetworkCredential(ConfigurationManager.AppSettings["uid"], ConfigurationManager.AppSettings["AtomPassword"]);

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(bytes, 0, bytes.Length);
            requestStream.Close();

            HttpWebResponse response;
            response = (HttpWebResponse)request.GetResponse();

            if (response.StatusCode == HttpStatusCode.OK)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
                    string inputLine = "";
                    while ((inputLine = reader.ReadLine()) != null)
                    {
                        if (inputLine.Trim().StartsWith("<"))
                        {
                            responseString += inputLine + "\n";
                        }
                    }
                }
        }
         }

            catch (Exception ex)
            {
                int currentLine = new System.Diagnostics.StackTrace(true).GetFrame(0).GetFileLineNumber();
                _logger.LogException(this.GetType().Name, System.Reflection.MethodBase.GetCurrentMethod().Name, ex, currentLine);
        }
            //return response to 
            return responseString;
        }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM