我在这里尝试做的是使用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());
Run Code Online (Sandbox Code Playgroud)
我使用WebClient类:
WebClient webClient = new WebClient();
using (webClient)
{
requestInterceptor.OnRequest(webClient);
var enc = new ASCIIEncoding();
return enc.GetString(webClient.UploadData(uri, enc.GetBytes(dataAsString)));
}
Run Code Online (Sandbox Code Playgroud)
你正在做的事情没有根本的错误,但你需要刷新/关闭请求流编写器.这可以通过using
构造轻松完成,因为处理编写器也会刷新它:
using (StreamWriter writer = new StreamWriter(req.GetRequestStream()))
{
writer.WriteLine(xml.ToString());
}
Run Code Online (Sandbox Code Playgroud)
然后,您需要调用GetResponse
以实际执行请求:
req.GetResponse()
Run Code Online (Sandbox Code Playgroud)
(请注意,HttpWebResponse
从此返回也是一次性的,所以不要忘记处置它.)
归档时间: |
|
查看次数: |
8545 次 |
最近记录: |