HttpRequest and HttpResponse
All 3 Akka HTTP Client API levels use the same basic model of HttpRequest
and HttpResponse
.
Creating requests
You can create simple GET
requests:
- Scala
-
source
HttpRequest(uri = "https://akka.io") // or: import akka.http.scaladsl.client.RequestBuilding.Get Get("https://akka.io") // with query params Get("https://akka.io?foo=bar")
- Java
Note
HttpRequest
also takes Uri
as a parameter. Query String in URI section describes a fluent API for building URIs with query parameters.
Or more complicated ones, like this POST
:
- Scala
-
source
HttpRequest( method = HttpMethods.POST, uri = "https://userservice.example/users", entity = HttpEntity(ContentTypes.`text/plain(UTF-8)`, "data") ) // or: import akka.http.scaladsl.client.RequestBuilding.Post Post("https://userservice.example/users", "data")
- Java
See the API documentation of HttpRequest
for more information on how to customize your requests.
Processing responses
When you receive a response, you can use the Marshalling API to convert the response entity into an object:
- Scala
-
source
import akka.http.scaladsl.unmarshalling.Unmarshal import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._ import spray.json.DefaultJsonProtocol._ import spray.json.RootJsonFormat case class Pet(name: String) implicit val petFormat: RootJsonFormat[Pet] = jsonFormat1(Pet.apply) val pet: Future[Pet] = Unmarshal(response).to[Pet]
- Java