Scala 使用spray客户端发布请求
我想使用spray客户端通过HTTP POST请求向服务器发送XML,并设置一些标题等。然而,我能找到的唯一示例是JSON请求 是否有人可以使用spray客户端通过HTTP POST通信为XML提供一个简单的代码片段Scala 使用spray客户端发布请求,scala,post,spray,spray-client,Scala,Post,Spray,Spray Client,我想使用spray客户端通过HTTP POST请求向服务器发送XML,并设置一些标题等。然而,我能找到的唯一示例是JSON请求 是否有人可以使用spray客户端通过HTTP POST通信为XML提供一个简单的代码片段 谢谢 下面是一个小代码示例,用于创建一个sprayHttpRequest,它具有基于xmlNodeSeq的有效负载。让我知道这是否有帮助,或者您是否需要更多代码(如提交请求): 下面是一个小代码示例,用于创建具有基于xml的负载的sprayHttpRequest。让我知道这是否有帮
谢谢 下面是一个小代码示例,用于创建一个spray
HttpRequest
,它具有基于xmlNodeSeq
的有效负载。让我知道这是否有帮助,或者您是否需要更多代码(如提交请求):
下面是一个小代码示例,用于创建具有基于xml的负载的spray
HttpRequest
。让我知道这是否有帮助,或者您是否需要更多代码(如提交请求):
用一种老套的方式来明确内容类型。注意:有效负载可以是字符串或xml文本
import spray.client.pipelining._
import spray.http._
val pipeline: HttpRequest => Future[HttpResponse] = {
addHeader("My-Header-Key", "myheaderdata") ~>
((_:HttpRequest).mapEntity( _.flatMap( f => HttpEntity(
f.contentType.withMediaType(MediaTypes.`application/xml`),f.data))))
~> sendReceive
}
pipeline(
Post(
"http://www.example.com/myendpoint", <MyXmlTag>MyXmlData</MyXmlTag>
)
)
导入spray.client.pipeline_
导入spray.http_
val管道:HttpRequest=>Future[HttpResponse]={
addHeader(“我的标题键”、“我的标题数据”)~>
((:HttpRequest).mapEntity()
f、 contentType.withMediaType(MediaTypes.application/xml`)、f.data)))
~>发送接收
}
管道(
职位(
"http://www.example.com/myendpoint,MyXmlData
)
)
以一种老套的方式具体说明内容类型。注意:有效负载可以是字符串或xml文本
import spray.client.pipelining._
import spray.http._
val pipeline: HttpRequest => Future[HttpResponse] = {
addHeader("My-Header-Key", "myheaderdata") ~>
((_:HttpRequest).mapEntity( _.flatMap( f => HttpEntity(
f.contentType.withMediaType(MediaTypes.`application/xml`),f.data))))
~> sendReceive
}
pipeline(
Post(
"http://www.example.com/myendpoint", <MyXmlTag>MyXmlData</MyXmlTag>
)
)
导入spray.client.pipeline_
导入spray.http_
val管道:HttpRequest=>Future[HttpResponse]={
addHeader(“我的标题键”、“我的标题数据”)~>
((:HttpRequest).mapEntity()
f、 contentType.withMediaType(MediaTypes.application/xml`)、f.data)))
~>发送接收
}
管道(
职位(
"http://www.example.com/myendpoint,MyXmlData
)
)
我必须构建什么.sbt才能运行它?我添加了resolvers+=“spray repo”at”http://repo.spray.io“和
libraryDependencies+=”io.spray“%”spray can“%”“1.0”`但它会抱怨。@Marius Kavansky,我添加了build.sbt中的相关部分。我希望有帮助。谢谢。但是,如何使用填充的http头(如X-Application)和一些自定义的post数据发出post请求呢?“不过,我可以提出一个新问题。@Marius Kavansky,是的,提出一个新问题可能是个更好的主意。”。但是,如果您想要一个快速的示例,请查看此链接的底部,其中显示了一个请求并通过~>
添加了一个标题:我刚刚做了--请看一看。我必须构建什么.sbt才能运行它?我添加了resolvers+=“spray repo”at”http://repo.spray.io“和
libraryDependencies+=”io.spray“%”spray can“%”“1.0”`但它会抱怨。@Marius Kavansky,我添加了build.sbt中的相关部分。我希望有帮助。谢谢。但是,如何使用填充的http头(如X-Application)和一些自定义的post数据发出post请求呢?“不过,我可以提出一个新问题。@Marius Kavansky,是的,提出一个新问题可能是个更好的主意。”。但是,如果您想要一个简单的例子,请查看此链接的底部,其中显示了一个请求并通过~>
添加了一个标题:我刚刚做了--请看一看。
import spray.client.pipelining._
import spray.http._
val pipeline: HttpRequest => Future[HttpResponse] = {
addHeader("My-Header-Key", "myheaderdata") ~>
((_:HttpRequest).mapEntity( _.flatMap( f => HttpEntity(
f.contentType.withMediaType(MediaTypes.`application/xml`),f.data))))
~> sendReceive
}
pipeline(
Post(
"http://www.example.com/myendpoint", <MyXmlTag>MyXmlData</MyXmlTag>
)
)