0

我正在尝试隔离我在进行 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 上设置了超时)。我删除了 url,主要是为了只关注代码。

代码有什么问题会阻止进行此调用吗?

4

2 回答 2

0

如果writer.Flush();在保存 XML 后调用会发生什么?

我不确定为什么这不会超时,但也许它不会超时,因为由于写入被缓冲而没有发出请求?

于 2009-06-05T07:30:46.440 回答
0

我最终使用http://www.xml-rpc.net/而不是自己编写。

于 2009-08-23T18:22:36.257 回答