簡體   English   中英

如何在HttpWebRequest標頭C#MVC4中傳遞XML字符串?

[英]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.

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