我正在尝试隔离我正在进行XML RPC调用的问题:
XDocument doc = new XDocument();
doc.Add(new XElement("methodCall",
new XElement("methodName", "send"),
new XElement("params",
new XElement("param", new XElement("value", new XElement("string", this.ApiKey))),
new XElement("param", new XElement("value", new XElement("string", this.FromAddress))),
new XElement("param", new XElement("value", new XElement("string", recipient))),
new XElement("param", new XElement("value", new XElement("string", contents)))
)
)
);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://urlremoved");
req.ContentType = "text/xml";
req.Method = "POST";
XmlTextWriter writer = new XmlTextWriter(req.GetRequestStream(), Encoding.UTF8);
doc.Save(writer);
HttpWebResponse response = (HttpWebResponse)req.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
return reader.ReadToEnd();
这只会停止并且永远不会超时(即使我在req.TimeOut和req.ReadWriteTimeout上设置了超时)。我删除了网址,主要是为了专注于代码。
代码是否有任何问题会阻止此调用?
答案 0 :(得分:0)
如果在保存XML后调用writer.Flush();
会怎样?
我不确定为什么这不会超时,但也许它没有超时,因为没有请求由于写入被缓冲这一事实?
答案 1 :(得分:0)
我最终使用http://www.xml-rpc.net/而不是自己编写。