有一些关于在发送http://dispatch.databinder.net/Combined+Pages.html中发送发布请求的文档,但目前尚不清楚。那里有myRequest和myPost是什么?
我想发送https帖子请求+通过标题手动添加一些Cookie +添加一些海关标题,如表单数据等,然后通过阅读标题和Cookie来阅读响应。
我只知道如何准备发送帖子请求的网址:
val url = host(myUrl + "?check=1&val1=123").secure
接下来我该怎么做?
答案 0 :(得分:9)
Dispatch建立在Async Http Client之上。因此,示例中为myRequest
:
val myRequest = url("http://example.com/some/path")
是com.ning.http.client.RequestBuilder。
在POST
上调用RequestBuilder
方法会将请求转换为POST请求。这就是myPost
示例中发生的事情:
def myPost = myRequest.POST
我经常发现Dispatch文档难以理解。有关所有各种Dispatch运算符的快速概述,请参阅:Periodic Table of Dispatch Operators
如果您询问如何构建POST请求并添加自定义表单参数,您可能希望使用<<(values)
运算符,如下所示:
val params = Map("param1" -> "val1", "param2" -> "val2")
val req = url("http://www.example.com/some/path" <<(params)
同样,如果您想添加一些自定义标题,可以使用<:<(map)
运算符,如下所示:
val headers = Map("x-custom1" -> "val1", "x-custom2" -> "val2")
val req = url("http://www.example.com/some/path" <<(params) <:<(headers)
更新:实际上,POST
上没有RequestBuilder
方法。对POST
的调用是Dispatch的一部分,并在基础setMethod
上调用RequestBuilder
。有关详细信息,请参阅dispatch.MethodVerbs。