Update readme

This commit is contained in:
Saúl Piña 2016-03-13 11:20:23 -05:00
parent a09862058e
commit 9f4b6264d6
3 changed files with 114 additions and 89 deletions

1
.gitignore vendored
View File

@ -30,6 +30,7 @@ $RECYCLE.BIN/
*.msi *.msi
*.msm *.msm
*.msp *.msp
*.mdb
# Windows shortcuts # Windows shortcuts
*.lnk *.lnk

View File

@ -5,6 +5,8 @@ Description
----------- -----------
XmlRpc Web Service Client is a C# implementation of XML-RPC, a popular XmlRpc Web Service Client is a C# implementation of XML-RPC, a popular
protocol that uses XML over HTTP to implement remote procedure calls. protocol that uses XML over HTTP to implement remote procedure calls.
This implementation can be used in .NET 4.5, NET 3.5 CF.
This software was tested with Odoo 8 and 9.
Features Features
@ -17,7 +19,31 @@ Features
- Version: v1.3.0 - Version: v1.3.0
Documentation Links
------------- -----
- http://xmlrpc.scripting.com/ - http://xmlrpc.scripting.com/
- https://en.wikipedia.org/wiki/XML-RPC - https://en.wikipedia.org/wiki/XML-RPC
Example Create Partner and Image
--------------------------------
- Source:
```c#
```
- Output:
```
```
- Odoo Output:
![](/documents/printscreen-1.png)
![](/documents/printscreen-2.png)
- WinCE PrintScreen Example:
![](/documents/printscreen-3.png)

View File

@ -31,7 +31,7 @@ namespace sandbox {
/// </summary> /// </summary>
class MainClass { class MainClass {
public static string Url = "http://localhost:8069/xmlrpc/2", db = "odoo", pass = "admin", user = "admin"; public static string Url = "http://localhost:8069/xmlrpc/2", db = "odoo9", pass = "admin", user = "admin";
public static void TestRequestXml() { public static void TestRequestXml() {
XmlRpcRequest request = new XmlRpcRequest("version"); XmlRpcRequest request = new XmlRpcRequest("version");
@ -211,74 +211,6 @@ namespace sandbox {
} }
} }
public static void TestCreateRecord() {
XmlRpcClient client = new XmlRpcClient();
client.Url = Url;
client.Path = "common";
// LOGIN
XmlRpcRequest requestLogin = new XmlRpcRequest("authenticate");
requestLogin.AddParams(db, user, pass, XmlRpcParameter.EmptyStruct());
XmlRpcResponse responseLogin = client.Execute(requestLogin);
// Console.WriteLine("authenticate");
// Console.WriteLine("REQUEST: ");
// client.WriteRequest(Console.Out);
// Console.WriteLine();
// Console.WriteLine();
// Console.WriteLine("RESPONSE: ");
// client.WriteResponse(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("LOGIN: ");
if (responseLogin.IsFault()) {
Console.WriteLine(responseLogin.GetFaultString());
} else {
Console.WriteLine(responseLogin.GetString());
}
// CREATE
client.Path = "object";
XmlRpcRequest requestCreate = new XmlRpcRequest("execute_kw");
requestCreate.AddParams(db, responseLogin.GetInt(), pass, "res.partner", "create",
XmlRpcParameter.AsArray(
XmlRpcParameter.AsStruct(
XmlRpcParameter.AsMember("name", "Albert Einstein")
, XmlRpcParameter.AsMember("image", Convert.ToBase64String(File.ReadAllBytes("img/einstein.jpg")))
, XmlRpcParameter.AsMember("email", "albert.einstein@email.com")
)
)
);
XmlRpcResponse responseCreate = client.Execute(requestCreate);
// Console.WriteLine();
// Console.WriteLine();
// Console.WriteLine("create");
// Console.WriteLine("REQUEST: ");
// client.WriteRequest(Console.Out);
// Console.WriteLine();
// Console.WriteLine();
// Console.WriteLine("RESPONSE: ");
// client.WriteResponse(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("READ: ");
if (responseCreate.IsFault()) {
Console.WriteLine(responseCreate.GetFaultString());
} else {
Console.WriteLine(responseCreate.GetString());
}
}
public static void TestSearchReadRecords() { public static void TestSearchReadRecords() {
XmlRpcClient client = new XmlRpcClient(); XmlRpcClient client = new XmlRpcClient();
client.Url = Url; client.Url = Url;
@ -322,25 +254,23 @@ namespace sandbox {
) )
), ),
XmlRpcParameter.AsStruct( XmlRpcParameter.AsStruct(
XmlRpcParameter.AsMember("fields", XmlRpcParameter.AsArray("name","email")) XmlRpcParameter.AsMember("fields", XmlRpcParameter.AsArray("name", "email"))
// ,XmlRpcParameter.AsMember("limit", 2) // ,XmlRpcParameter.AsMember("limit", 2)
) )
); );
XmlRpcResponse responseSearch = client.Execute(requestSearch); XmlRpcResponse responseSearch = client.Execute(requestSearch);
// Console.WriteLine(); Console.WriteLine();
// Console.WriteLine(); Console.WriteLine();
// Console.WriteLine("search"); Console.WriteLine("search");
// Console.WriteLine("REQUEST: "); Console.WriteLine("REQUEST: ");
// client.WriteRequest(Console.Out); client.WriteRequest(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("RESPONSE: ");
// Console.WriteLine();
// Console.WriteLine();
// Console.WriteLine("RESPONSE: ");
// client.WriteResponse(Console.Out);
Console.WriteLine(); Console.WriteLine();
Console.WriteLine(); Console.WriteLine();
@ -353,12 +283,80 @@ namespace sandbox {
} }
public static void TestCreateRecord() {
XmlRpcClient client = new XmlRpcClient();
client.Url = Url;
client.Path = "common";
// LOGIN
XmlRpcRequest requestLogin = new XmlRpcRequest("authenticate");
requestLogin.AddParams(db, user, pass, XmlRpcParameter.EmptyStruct());
XmlRpcResponse responseLogin = client.Execute(requestLogin);
Console.WriteLine("authenticate");
Console.WriteLine("REQUEST: ");
client.WriteRequest(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("RESPONSE: ");
client.WriteResponse(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("LOGIN: ");
if (responseLogin.IsFault()) {
Console.WriteLine(responseLogin.GetFaultString());
} else {
Console.WriteLine(responseLogin.GetString());
}
// CREATE
client.Path = "object";
XmlRpcRequest requestCreate = new XmlRpcRequest("execute_kw");
requestCreate.AddParams(db, responseLogin.GetInt(), pass, "res.partner", "create",
XmlRpcParameter.AsArray(
XmlRpcParameter.AsStruct(
XmlRpcParameter.AsMember("name", "Albert Einstein")
, XmlRpcParameter.AsMember("image", Convert.ToBase64String(File.ReadAllBytes("img/einstein.jpg")))
, XmlRpcParameter.AsMember("email", "albert.einstein@email.com")
)
)
);
XmlRpcResponse responseCreate = client.Execute(requestCreate);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("create");
Console.WriteLine("REQUEST: ");
client.WriteRequest(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("RESPONSE: ");
client.WriteResponse(Console.Out);
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("READ: ");
if (responseCreate.IsFault()) {
Console.WriteLine(responseCreate.GetFaultString());
} else {
Console.WriteLine(responseCreate.GetString());
}
}
public static void Main(string[] args) { public static void Main(string[] args) {
TestRequestXml(); // TestRequestXml();
// TestResponseXml(); // TestResponseXml();
// TestReadVersion(); // TestReadVersion();
// TestReadRecords(); // TestReadRecords();
// TestCreateRecord(); TestCreateRecord();
// TestSearchReadRecords(); // TestSearchReadRecords();
Console.ReadKey(); Console.ReadKey();
} }