| 123456789101112131415161718192021222324252627282930313233343536373839 |
- using Pprf.Messages;
- using Invercargill;
- namespace Pprf {
- public class HttpPprfClient : Client {
- public string endpoint { get; set; }
- public const string HTTP_CONTENT_TYPE = "application/pprf";
-
- private Soup.Session session;
- public HttpPprfClient(string endpoint) {
- this.endpoint = endpoint;
- session = new Soup.Session();
- session.idle_timeout = 30;
- }
- public override Message send_message(Message message) throws Error {
- var soup_message = new Soup.Message("POST", endpoint);
-
- var message_data = new MemoryOutputStream (null, GLib.realloc, GLib.free);
- var data_stream = new DataOutputStream(message_data);
- message.serialise(data_stream);
- data_stream.flush();
- data_stream.close();
- var raw_data = message_data.steal_as_bytes();
- soup_message.set_request_body_from_bytes(HTTP_CONTENT_TYPE, raw_data);
- var response_stream = session.send(soup_message);
- return MessageFactory.from_stream(response_stream);
- }
- }
- }
|