|
@@ -51,47 +51,45 @@ namespace XmlRpcHandler
|
|
|
XmlWriterSettings sett = new XmlWriterSettings();
|
|
|
sett.Indent = true;
|
|
|
|
|
|
- var requestXmlPath = Path.Combine(Path.GetTempPath(), "request.xml");
|
|
|
-
|
|
|
sett.Encoding = Encoding.UTF8;
|
|
|
- FileStream str = new FileStream(requestXmlPath, FileMode.Create, FileAccess.Write);
|
|
|
|
|
|
- XmlWriter XMLwrt = XmlWriter.Create(str, sett);
|
|
|
- // Let's write the methods
|
|
|
- foreach (XmlRpcMethodCall method in methods)
|
|
|
+ using (var ms = new MemoryStream())
|
|
|
{
|
|
|
- XMLwrt.WriteStartElement("methodCall");//methodCall
|
|
|
- XMLwrt.WriteStartElement("methodName");//methodName
|
|
|
- XMLwrt.WriteString(method.Name);
|
|
|
- XMLwrt.WriteEndElement();//methodName
|
|
|
- XMLwrt.WriteStartElement("params");//params
|
|
|
- // Write values
|
|
|
- foreach (IXmlRpcValue p in method.Parameters)
|
|
|
+ XmlWriter XMLwrt = XmlWriter.Create(ms, sett);
|
|
|
+ // Let's write the methods
|
|
|
+ foreach (XmlRpcMethodCall method in methods)
|
|
|
{
|
|
|
- XMLwrt.WriteStartElement("param");//param
|
|
|
- if (p is XmlRpcValueBasic)
|
|
|
- {
|
|
|
- WriteBasicValue(XMLwrt, (XmlRpcValueBasic)p);
|
|
|
- }
|
|
|
- else if (p is XmlRpcValueStruct)
|
|
|
+ XMLwrt.WriteStartElement("methodCall");//methodCall
|
|
|
+ XMLwrt.WriteStartElement("methodName");//methodName
|
|
|
+ XMLwrt.WriteString(method.Name);
|
|
|
+ XMLwrt.WriteEndElement();//methodName
|
|
|
+ XMLwrt.WriteStartElement("params");//params
|
|
|
+ // Write values
|
|
|
+ foreach (IXmlRpcValue p in method.Parameters)
|
|
|
{
|
|
|
- WriteStructValue(XMLwrt, (XmlRpcValueStruct)p);
|
|
|
- }
|
|
|
- else if (p is XmlRpcValueArray)
|
|
|
- {
|
|
|
- WriteArrayValue(XMLwrt, (XmlRpcValueArray)p);
|
|
|
+ XMLwrt.WriteStartElement("param");//param
|
|
|
+ if (p is XmlRpcValueBasic)
|
|
|
+ {
|
|
|
+ WriteBasicValue(XMLwrt, (XmlRpcValueBasic)p);
|
|
|
+ }
|
|
|
+ else if (p is XmlRpcValueStruct)
|
|
|
+ {
|
|
|
+ WriteStructValue(XMLwrt, (XmlRpcValueStruct)p);
|
|
|
+ }
|
|
|
+ else if (p is XmlRpcValueArray)
|
|
|
+ {
|
|
|
+ WriteArrayValue(XMLwrt, (XmlRpcValueArray)p);
|
|
|
+ }
|
|
|
+ XMLwrt.WriteEndElement();//param
|
|
|
}
|
|
|
- XMLwrt.WriteEndElement();//param
|
|
|
- }
|
|
|
|
|
|
- XMLwrt.WriteEndElement();//params
|
|
|
- XMLwrt.WriteEndElement();//methodCall
|
|
|
+ XMLwrt.WriteEndElement();//params
|
|
|
+ XMLwrt.WriteEndElement();//methodCall
|
|
|
+ }
|
|
|
+ XMLwrt.Flush();
|
|
|
+ XMLwrt.Close();
|
|
|
+ return ms.ToArray();
|
|
|
}
|
|
|
- XMLwrt.Flush();
|
|
|
- XMLwrt.Close();
|
|
|
- str.Close();
|
|
|
- string requestContent = File.ReadAllText(requestXmlPath);
|
|
|
- return Encoding.UTF8.GetBytes(requestContent);
|
|
|
}
|
|
|
/// <summary>
|
|
|
/// Decode response then return the values
|