2
votes

I'm trying to make request to facebook REST APIs and in return getting a JSON Response. I'm able to collect the response in REST client, hence I know the requestUrl I'm using while creating HttpRequest in following code is correct. But when I try to mimick the GET using akka-http javadsl, I'm unable to understand how to extract the json from the ResponseEntity.

final HttpRequest request = HttpRequest.GET(requestUrl);
final Materializer materializer = ActorMaterializer.create(this.context.getActorSystem());

final CompletionStage<HttpResponse> responseFuture =
                Http.get(this.context.getActorSystem()).singleRequest(request, materializer);

final HttpResponse response = responseFuture.toCompletableFuture().get();

I'm expecting a response something as follows -

 {
   "data": [
      {
         "cpc": 9.7938056680162,
         "clicks": "247",
         "impressions": "15949",
         "spend": 2419.07,
         "date_start": "2016-06-15",
         "date_stop": "2016-08-13"
      }
   ],
   "paging": {
      "cursors": {
         "before": "MAZDZD",
         "after": "MAZDZD"
      }
   }
}
1

1 Answers

1
votes

You should get response entity from response by calling ResponseEntity entity = response.entity() and after that call entity.toStrict(timeoutMillis, materialiser).data.decodeString("UTF-8") to get body string

You can lookup signatures of those methods in official API documentation