Thanks a lot !

That is just what I neede to get started.

Thanks,

Serge.



On Sun, Nov 13, 2011 at 3:02 AM, Alexandre Rosenfeld <
[email protected]> wrote:

> Couldn't find anything, so I just wrote a small app to do that. Probably
> has a few bugs, but it's only to show the idea. Also pasted at
> http://pastebin.com/6U2JGmuh
>
>
>    1.  void default_handler (Soup.Server server, Soup.Message msg, string
>     path,
>    2.                       GLib.HashTable<string,string?>? query, Soup.
>    ClientContext client)
>    3.  {
>    4.   var form_data = query;
>    5.    if (msg.method == "POST") {
>    6.     msg.request_body.flatten();
>    7.      form_data = Soup.Form.decode((string) msg.request_body.data);
>    8.   }
>    9.    var user = (form_data != null) ? form_data.get("user") : "";
>    10.
>    11.    var welcome = "";
>    12.   if (user != null)
>    13.      welcome = "<p>Welcome %s</p>".printf(user);
>    14.
>    15.    var data = new HashTable<string, string>(str_hash, str_equal);
>    16.   data.set("$user", user);
>    17.    data.set("$welcome", welcome);
>    18.   data.set("$path", path);
>    19.
>    20.   string response_text = """
>    21.     <html>
>    22.       <body>
>    23.         <p>Current location: $path</p>
>    24.         $welcome
>    25.         <form name='input' action='$path' method='get'>
>    26.           Name: <input type='text' name='user' value='$user' />
>    27.         <input type='submit' value='Submit GET' />
>    28.         </form>
>    29.         <form name='input' action='$path' method='post'>
>    30.           Name: <input type='text' name='user' value='$user' />
>    31.         <input type='submit' value='Submit POST'/>
>    32.         </form>
>    33.       </body>
>    34.     </html>""";
>     35.
>    36.   data.foreach((k, v) => {
>    37.      response_text = response_text.replace(k, v);
>    38.   });
>    39.
>    40.   msg.set_response ("text/html", Soup.MemoryUse.COPY,
>    41.                      response_text.data);
>    42.  }
>    43.
>    44. int main (string[] args) {
>    45.      var port = 8088;
>    46.     var server = new Soup.Server (Soup.SERVER_PORT, port);
>    47.      server.add_handler ("/", default_handler);
>    48.     stdout.printf("Serving on http://localhost:%d\n";, port);
>    49.      server.run ();
>    50.
>    51.      return 0;
>    52.  }
>
>
> *Alexandre Rosenfeld*
>
> On Sat, Nov 12, 2011 at 21:50, Serge Hulne <[email protected]> wrote:
>
>> Hi,
>>
>> I am looking for a slightly more complete example than the one from the
>> Vala tutorials on "Soup".
>>
>> More particularly, I am looking for a snippet that would show how to get
>> (and possibly decode) the data sent via HTTP from an HTML web form (in a
>> browser) to a (Soup-based) server.
>>
>> Thanks !
>>
>> Serge.
>>
>> _______________________________________________
>> vala-list mailing list
>> [email protected]
>> http://mail.gnome.org/mailman/listinfo/vala-list
>>
>>
>
_______________________________________________
vala-list mailing list
[email protected]
http://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to