Проблема с вызовом XML RPC - PullRequest
0 голосов
/ 27 апреля 2009

Я пытаюсь изолировать проблему, с которой я выполняю вызов RPC XML:

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, в основном, чтобы сосредоточиться только на коде.

Что-то не так с кодом, который бы препятствовал выполнению этого вызова?

Ответы [ 2 ]

0 голосов
/ 23 августа 2009

В итоге я использовал http://www.xml -rpc.net / вместо того, чтобы писать свой собственный.

0 голосов
/ 05 июня 2009

Что произойдет, если вы позвоните writer.Flush(); после сохранения XML?

Я не уверен, почему не истекает время ожидания, но, может быть, оно не истекает, так как не делается никакого запроса из-за того, что запись буферизируется?

...