Mikael Eliasson
Mikael Eliasson

Reputation: 5227

object play.http.HttpEntity.Streamed is not a value

Using Scala and Play 2.5.10 (according to plugin.sbt) I have this code:

import akka.stream.scaladsl.Source
import play.api.libs.streams.Streams
import play.http._

val source = Source.fromPublisher(Streams.enumeratorToPublisher(enumerator))
Ok.sendEntity(HttpEntity.Streamed(source, None, Some("application/zip")))

The imports there are mostly from testing because no matter what I try I can't get the framework to accept HttpEntity.Streamed. With this setup the error is what the title says. Or taken from the console:

Error

Looking at the documentation here I can't really figure out why it doesn't work: https://www.playframework.com/documentation/2.5.10/api/java/play/http/HttpEntity.Streamed.html

This is also what the official examples use: https://www.playframework.com/documentation/2.5.x/ScalaStream

Does anyone at least have some pointers on where to start looking? I've never used Scala or Play before so any hints are welcome.

Upvotes: 0

Views: 653

Answers (1)

HuntsMan
HuntsMan

Reputation: 792

you should import this one

import play.api.http.HttpEntity
import play.api.libs.streams.Streams

 val entity: HttpEntity = HttpEntity.Streamed(fileContent, None, None)
 Result(ResponseHeader(200), entity).as(MemeFoRTheFile)

It means that HttpEntity.Streamed is not a value so you should wrap it in a Result() with its ResponseHeader and its extension

Upvotes: 1

Related Questions