4

有一些关于在调度http://dispatch.databinder.net/Combined+Pages.html中发送发布请求的文档, 但还不清楚。那里的 myRequest 和 myPost 是什么?

我想发送一个 https 发布请求 + 通过标题手动添加一些 cookie + 添加一些海关标题,如表单数据等,然后通过读取标题和 cookie 来读取响应。

我只知道如何准备 url 来发送 post 请求:

val url = host(myUrl + "?check=1&val1=123").secure

接下来我该怎么做?

4

1 回答 1

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 文档很难遵循。有关所有各种调度运算符的快速概述,请参阅:调度运算符周期表

如果您询问如何构建 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)

更新:实际上,POSTRequestBuilder. 调用POST是 Dispatch 的一部分,并调用setMethod底层RequestBuilder. 有关详细信息,请参阅dispatch.MethodVerbs 。

于 2013-10-08T21:17:41.567 回答