簡體   English   中英

如何使用post方法調用Rest Webserivce並在C#中發送xml數據

[英]How do i call Rest Webserivce with a post method and send xml data in C#

我在這里嘗試做的是使用xml數據向Rest webserivce發帖請求。

這就是我現在所擁有的,但我不知道如何傳遞我的xml數據

            XElement xml = new XElement("MatchedOptions",
               from m in _matchedOptionsList
               select new XElement("Listing",
                       new XElement("DomainID", _trafficCopInputs.DomainID),
                       new XElement("AdSource", _trafficCopInputs.AdSource),
                       new XElement("Campaign", _trafficCopInputs.Campaign),
                       new XElement("AdGroup", _trafficCopInputs.AdGroup),
                       new XElement("RedirectURL", m.RedirectPath),
                       new XElement("FunnelKeyword", m.FunnelKeyword)));

            HttpWebRequest req = WebRequest.Create("http://something.com/")
                 as HttpWebRequest;


            req.Method = "POST";
            req.ContentType = "text/xml";
            req.ContentLength = 0;
            StreamWriter writer = new StreamWriter(req.GetRequestStream());
            writer.WriteLine(xml.ToString());

我使用WebClient類:

WebClient webClient = new WebClient();
using (webClient)
{
   requestInterceptor.OnRequest(webClient);
   var enc = new ASCIIEncoding();
   return enc.GetString(webClient.UploadData(uri, enc.GetBytes(dataAsString)));
}

你正在做的事情沒有根本的錯誤,但你需要刷新/關閉請求流編寫器。 這可以using構造輕松完成,因為處理writer也會刷新它:

using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
{
    writer.WriteLine(xml.ToString());
}

然后,您需要調用GetResponse來實際執行請求:

req.GetResponse()

(請注意,從此返回的HttpWebResponse也是一次性的,所以不要忘記將其丟棄。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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