diff --git a/readme.md b/readme.md index d53612f..625b29d 100644 --- a/readme.md +++ b/readme.md @@ -81,6 +81,10 @@ val r = requests.delete("http://httpbin.org/delete") val r = requests.head("http://httpbin.org/head") val r = requests.options("http://httpbin.org/get") + +// dynamically choose what HTTP method to use +val r = requests.send("put")("http://httpbin.org/put", data = Map("key" -> "value")) + ``` ### Passing in Parameters diff --git a/requests/src/requests/Requester.scala b/requests/src/requests/Requester.scala index bff1098..55d6529 100644 --- a/requests/src/requests/Requester.scala +++ b/requests/src/requests/Requester.scala @@ -34,6 +34,8 @@ trait BaseSession{ lazy val options = Requester("OPTIONS", this) // unofficial lazy val patch = Requester("PATCH", this) + + def send(method: String) = Requester(method, this) } object BaseSession{ diff --git a/requests/test/src-2/requests/Scala2RequestTests.scala b/requests/test/src-2/requests/Scala2RequestTests.scala new file mode 100644 index 0000000..63d73de --- /dev/null +++ b/requests/test/src-2/requests/Scala2RequestTests.scala @@ -0,0 +1,44 @@ +package requests + +import utest._ +import ujson._ + +object Scala2RequestTests extends TestSuite{ + val tests = Tests{ + + test("params"){ + + test("post"){ + for(chunkedUpload <- Seq(true, false)) { + val res1 = requests.post( + "https://httpbin.org/post", + data = Map("hello" -> "world", "foo" -> "baz"), + chunkedUpload = chunkedUpload + ).text() + assert(read(res1).obj("form") == Obj("foo" -> "baz", "hello" -> "world")) + } + } + test("put") { + for (chunkedUpload <- Seq(true, false)) { + val res1 = requests.put( + "https://httpbin.org/put", + data = Map("hello" -> "world", "foo" -> "baz"), + chunkedUpload = chunkedUpload + ).text() + assert(read(res1).obj("form") == Obj("foo" -> "baz", "hello" -> "world")) + } + } + test("send"){ + requests.send("get")("https://httpbin.org/get?hello=world&foo=baz") + + val res1 = requests.send("put")( + "https://httpbin.org/put", + data = Map("hello" -> "world", "foo" -> "baz"), + chunkedUpload = true + ).text + + assert(read(res1).obj("form") == Obj("foo" -> "baz", "hello" -> "world")) + } + } + } +} diff --git a/requests/test/src/requests/RequestTests.scala b/requests/test/src/requests/RequestTests.scala index a648689..9a9f8e5 100644 --- a/requests/test/src/requests/RequestTests.scala +++ b/requests/test/src/requests/RequestTests.scala @@ -57,26 +57,6 @@ object RequestTests extends TestSuite{ ) assert(read(res4).obj("args") == Obj("++-- lol" -> " !@#$%", "hello" -> "world")) } - test("post"){ - for(chunkedUpload <- Seq(true, false)) { - val res1 = requests.post( - "https://httpbin.org/post", - data = new RequestBlob.FormEncodedRequestBlob(Map("hello" -> "world", "foo" -> "baz")), - chunkedUpload = chunkedUpload - ).text() - assert(read(res1).obj("form") == Obj("foo" -> "baz", "hello" -> "world")) - } - } - test("put") { - for (chunkedUpload <- Seq(true, false)) { - val res1 = requests.put( - "https://httpbin.org/put", - data = new RequestBlob.FormEncodedRequestBlob(Map("hello" -> "world", "foo" -> "baz")), - chunkedUpload = chunkedUpload - ).text() - assert(read(res1).obj("form") == Obj("foo" -> "baz", "hello" -> "world")) - } - } } test("multipart"){ for(chunkedUpload <- Seq(true, false)) {