     (pc/decode data :application/transit+json)))
 
 (defn- send-raw-frame
-  [uri frame content-type]
+  [uri method frame content-type]
   (let [headers {"content-type" content-type}]
-    (http/put uri {:body frame :headers headers})))
+    (condp = method
+      :put (http/put uri {:body frame :headers headers})
+      :get (http/get (str uri "?d=" (codecs/bytes->safebase64 frame))
+                     {:headers headers}))))
 
 (defn- send-frame
-  [uri frame]
-  (let [data (pc/encode frame :application/transit+json)]
-    @(md/chain
-      (send-raw-frame uri data "application/transit+json")
-      response->frame)))
+  ([uri frame]
+   (send-frame uri frame :put))
+  ([uri frame method]
+   (let [data (pc/encode frame :application/transit+json)]
+     @(md/chain
+       (send-raw-frame uri method data "application/transit+json")
+       response->frame))))
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; Helpers

        (is (= (:type response) :response))
        (is (= (:data response) {:foo [1]}))))))


            [byte-streams :as bs]
            [manifold.deferred :as md]
            [promissum.core :as p]
            [buddy.core.codecs :as codecs]
            [cats.core :as m]
            [cats.monad.exception :as exc]
            [catacumba.core :as ct]
