[英]In C# after submit the file(xml) to a server, Got Response XML which have some boundary header
I got server response which have some header information, So once we tried to get node information and other thing it's thrown error because of header. 我得到了服务器响应,它有一些标题信息,所以一旦我们试图获取节点信息和其他东西,它会因为标题而抛出错误。 Here I am sharing the xml which have header and footer as well.
在这里,我分享了包含页眉和页脚的xml。 I don't need to this header and footer section.
我不需要这个页眉和页脚部分。 In C#.net, we remove this and read the xml element.
在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> ------ = _ 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 xxxxxxxxxxxxxxxxxxxxxxx
------=_Part_358888_188888895.1888888888888-- ------ = _ Part_358888_188888895.1888888888888--
---------Expected result----------- xxxxxxxxxxxxxxxxxxxxxxx ---------预期结果----------- 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.