一个简单的 Akka Http 请求是否可能与 curl 请求有很大不同?
Is it possible that a simple Akka Http request is so much different from a curl one?
我正在尝试从欧洲中央银行下载数据 API。一个简单的卷曲效果很好:
curl "https://sdw-wsrest.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?startPeriod=2018-06-06&endPeriod=2018-06-06"
但是当我尝试使用 Akka Http 实现相同的目的时,突然出现 500 错误。这是代码(您可以 运行 在浏览器中自己查看):https://scastie.scala-lang.org/ynqKN3ClQJmPUruybgR37g。因为 URL 完全相同,这意味着请求本身必须不同。这怎么可能?
您似乎需要在请求中添加接受 header。这似乎有效:
val httpRequest = HttpRequest(
method = HttpMethods.GET,
headers = List(Accept()),
uri = uri)
val futureResponse = Http().singleRequest(httpRequest)
您调用的服务似乎需要接受 header 并且 curl 默认添加 Accept: */*
header。
我正在尝试从欧洲中央银行下载数据 API。一个简单的卷曲效果很好:
curl "https://sdw-wsrest.ecb.europa.eu/service/data/EXR/D.USD.EUR.SP00.A?startPeriod=2018-06-06&endPeriod=2018-06-06"
但是当我尝试使用 Akka Http 实现相同的目的时,突然出现 500 错误。这是代码(您可以 运行 在浏览器中自己查看):https://scastie.scala-lang.org/ynqKN3ClQJmPUruybgR37g。因为 URL 完全相同,这意味着请求本身必须不同。这怎么可能?
您似乎需要在请求中添加接受 header。这似乎有效:
val httpRequest = HttpRequest(
method = HttpMethods.GET,
headers = List(Accept()),
uri = uri)
val futureResponse = Http().singleRequest(httpRequest)
您调用的服务似乎需要接受 header 并且 curl 默认添加 Accept: */*
header。