Scala 阿克卡http。生成文件并发送到客户端

Scala 阿克卡http。生成文件并发送到客户端,scala,akka-http,Scala,Akka Http,我需要将字符串保存到文本文件并发送到浏览器。我的路线: def genFileRoute: Route = path("someresource" / "generate") { get { complete( genFile ) } } 但我的发电机有个问题: def genFile = { val str = "Hi all! I am a string in future text file" /

我需要将字符串保存到文本文件并发送到浏览器。我的路线:

def genFileRoute: Route =
    path("someresource" / "generate") {
        get {
            complete( genFile )
        }
    }
但我的发电机有个问题:

def genFile = {
    val str = "Hi all! I am a string in future text file"

     // Need to write some code here :(
     // Something like 'php://output' with headers, but for akka.
}
如何在不使用文件系统的情况下创建内存中的文本文件
file.txt
?如何将其发送到客户端浏览器(下载)

p.S.很抱歉,我的英语不是我的母语。

您想使用标题进行此操作-它允许您设置发送到浏览器的文件名。根本不需要创建文件;在您的示例中,函数可以返回普通字符串

def genFile = {
    val str = "Hi all! I am a string in future text file"

    str
}
路线:

path("someresource" / "generate") {
  get {
    respondWithHeader(`Content-Disposition`(
        ContentDispositionTypes.attachment, Map("filename" -> "somefile.txt"))) {
      complete(genFile)
    }
  }
}

对于未来的灵魂:
import akka.http.scaladsl.model.headers.\uz