Scala调度简单获取请求 [英] Scala Dispatch Simple Get Request

查看:100
本文介绍了Scala调度简单获取请求的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试使用Scala Dispatch执行简单的GET请求,但是我出错了,出现404错误.意外的响应状态:404

I am trying to execute a Simple GET request with Scala Dispatch, however I am erroring out with a 404 error. Unexpected response status: 404

这是一个有效的示例:

https://www.google.com/finance/info?infotype=infoquoteall&q=tsla,goog

但是我是否知道我的错误在代码中的位置

But am I amunsure of where my error is in my code

import dispatch._ , Defaults._  
object Main extends App {
  //concats a the proper uri together to send to google finance   
  def composeUri ( l:List[String]) = {   
    def google = host("google.com").secure
    def googleFinance = google / "finance" / "info" 
    def googleFinanceGet = googleFinance.GET
    val csv = l mkString "," 
    googleFinanceGet <<? Map("infotype"-> "infoquoteall", "q"->csv)   
  }   

  def sendRequest (uri:Req) = { 
    val res:Future[Either[Throwable,String]] = Http(uri OK as.String).either    
    res 
  } 
  val future  = sendRequest(composeUri(List("tsla","goog")))
  for (f <- future.left) yield println("There was an error" + f.getMessage) 
} 

谢谢!

推荐答案

如果您打印组合的URL(例如,使用composeUri(List("tsla", "goog")).url),则会发现它与您的工作示例有所不同,其中不包括www子域.将google的定义更改为使用www.google.com,它将按预期工作.

If you print the composed URL (using composeUri(List("tsla", "goog")).url, for example), you'll see that it's different from your working example—it doesn't include the www subdomain. Change the definition of google to use www.google.com and this'll work as expected.

这篇关于Scala调度简单获取请求的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆