Scala 使用http4s获取Get请求中的403禁止错误

Scala 使用http4s获取Get请求中的403禁止错误,scala,http4s,http4s-circe,Scala,Http4s,Http4s Circe,我在http4s中做了一个简短的任务,我在很长一段时间内得到了403个错误,这很难调试。我的代码是: object Assignment extends App { implicit val cs: ContextShift[IO] = IO.contextShift(global) implicit val timer: Timer[IO] = IO.timer(global) val blockingPool = Executors.newFixedThreadPool(5)

我在http4s中做了一个简短的任务,我在很长一段时间内得到了403个错误,这很难调试。我的代码是:

object Assignment extends App {
  implicit val cs: ContextShift[IO] = IO.contextShift(global)
  implicit val timer: Timer[IO] = IO.timer(global)
  val blockingPool = Executors.newFixedThreadPool(5)
  val blocker = Blocker.liftExecutorService(blockingPool)
  val httpClient: Client[IO] = JavaNetClientBuilder[IO](blocker).create
  //val httpize = Uri.uri("http://httpize.herokuapp.com")

  def get() = {
    /*val target = uri("http://www.randomtext.me/download/txt/lorem/p-1/10-35/")
    val req = Request(method = Method.GET, uri = target)*/
    val ioString = httpClient.expect[String]("http://www.randomtext.me/download/txt/lorem/p-1/10-35/")
    val futu = ioString.map(x => x)
    futu.map(_.mkString).unsafeRunSync()





  }
  /*def post() = {
    val req = Request(method = Method.POST, uri = httpize / "post").withBody("hello")
    val task = httpClient.
    val x = task.unsafePerformSync
    println(x)
  }*/
  get()

  // post()

}

请考虑使用IAPP代替APP。此外,似乎你没有得到IO的想法,因为你正在立即运行一切。可以复制。-我想问题是URL没有返回字符串(文本),但rathers下载了一个文件。所以你想说的是,URL有问题,但我在postman中尝试运行相同的URL,它用字符串响应。实际上,Scastie中的代码可以工作,但有东西阻止了连接。我刚在我的机器上用菊石执行它,它工作如预期。请考虑使用IOAPP而不是APP。此外,似乎你没有得到IO的想法,因为你正在立即运行一切。可以复制。-我想问题是URL没有返回字符串(文本),但rathers下载了一个文件。所以你想说的是,URL有问题,但我在postman中尝试运行相同的URL,它用字符串响应。实际上,Scastie中的代码可以工作,但有东西阻止了连接。我只是在我的机器上对ammonite执行了它,它按预期工作。