From 3db0f84468ac77baf1fe5cfb1c1a766a629cb7f1 Mon Sep 17 00:00:00 2001 From: Sebastian Reichel Date: Mon, 30 Apr 2012 15:37:15 +0200 Subject: add POST data to web requests --- web.vala | 39 +++++++++++++++++++++++++++------------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/web.vala b/web.vala index 45dab4a..5f3e1e1 100644 --- a/web.vala +++ b/web.vala @@ -4,36 +4,51 @@ public class Web { uint64 user = 0; public Web() { - session = new Soup.SessionAsync (); + session = new Soup.SessionAsync(); + var cookies = new Soup.CookieJar(); + session.add_feature(cookies); } public void login(uint64 id) { - var message = new Soup.Message ("GET", server+"/login"); - session.send_message (message); + //stdout.printf("login: %llu\n", id); - stdout.printf("login: %llu\n", id); + var message = new Soup.Message("POST", server+"/login"); + var post_data = "userid=%llu".printf(id); + message.set_request("application/x-www-form-urlencoded", Soup.MemoryUse.COPY, post_data.data); + session.send_message(message); + + stdout.write(message.response_body.data); + stdout.printf("\n"); /* on success */ this.user = id; } public void logout() { - if(this.user != 0) { - var message = new Soup.Message ("GET", server+"/logout"); - session.send_message (message); + if(this.is_logged_in()) { + //stdout.printf("logout\n", id); + + var message = new Soup.Message("GET", server+"/logout"); + session.send_message(message); - stdout.printf("logout: %llu\n", this.user); + stdout.write(message.response_body.data); + stdout.printf("\n"); this.user = 0; } } public void buy(uint64 article) { - if(this.user > 0) { - var message = new Soup.Message ("GET", server+"/buy"); - session.send_message (message); + if(this.is_logged_in()) { + //stdout.printf(" buy: %llu\n", article); + + var message = new Soup.Message("POST", server+"/buy"); + var post_data = "article=%llu".printf(article); + message.set_request("application/x-www-form-urlencoded", Soup.MemoryUse.COPY, post_data.data); + session.send_message(message); - stdout.printf(" product: %llu\n", article); + stdout.write(message.response_body.data); + stdout.printf("\n"); } else { /* not logged into the system */ } -- cgit v1.2.3