![](/img/trans.png)
[英]object reference not set to an instance of an object xml C# and adding some node in xml file using C#
[英]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.