繁体   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