[英]How to pass header and Body value using HttpWebRequest in C#?
[英]How to Pass XML String in HttpWebRequest Header C# MVC4?
我想在HttpWebRequest
標頭中傳遞XML字符串嗎? 我在MVC4 .Net Framework 4.5 C#中的應用程序。 我的代碼如下:
try
{
String requestXML = @"<REPORT>
<USER-DETAIL>
<NAME>ABC</NAME1>
<PASSWORD>12345</NAME2>
</USER-DETAIL>
</REPORT>";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.demoservice.com/service/getReport");
request.Accept = "application/xml";
request.Method = "POST";
request.Headers.Add("userId", "admin");
request.Headers.Add("password", "***");
request.Headers.Add("requestXml", requestXML);
HttpWebResponse response;
response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
Stream responseStream = response.GetResponseStream();
String output = new StreamReader(responseStream).ReadToEnd();
Console.WriteLine(output);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
throw;
}
但是我遇到了以下錯誤,
指定的值包含無效的CRLF字符。 參數名稱:值
請幫助,在此先感謝。
不要在請求標頭中添加任意數據。 POST數據應放在請求正文中 。 請求標頭必須符合HTTP規范,而您錯誤地嘗試在其中填充的數據則不符合。
這是您應該如何做:
var data = Encoding.UTF8.GetBytes(requestXML);
request.ContentType = "application/xml";
request.ContentLength = data.Length;
using (var body = request.GetRequestStream())
{
body.Write(data, 0, data.Length);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.