daniel gon
daniel gon

Reputation: 159

Make a post request with okHttp

I make a post request using okHttp with the next code:

    final MediaType JSON = MediaType.get("application/json; charset=utf-8");
    OkHttpClient client = new OkHttpClient();
    RequestBody body = RequestBody.create(JSON, params);
    Request request = new Request.Builder()
        .url(url)
        .post(body)
        .build();

    Response response = null;
    response = client.newCall(request).execute();

The server response with:

response
{
  message: {
    user: {
      id: 12,
      name: 'myName'
    },
    message: 'Usuario creado con éxito.',
    code: 200
  }
} 

But the response that okHttp gives me is:

Response{protocol=http/1.1, code=200, message=OK, url=http://localhost:2222/api/users}

There isn´t a way to get what the server sends me with okHttp?

Upvotes: 0

Views: 3485

Answers (2)

Mustahsan
Mustahsan

Reputation: 3862

What you are getting is the header of response object. you can access the body of response by:

response.body().string();

full code:

final MediaType JSON = MediaType.get("application/json; charset=utf-8");
OkHttpClient client = new OkHttpClient();
RequestBody body = RequestBody.create(JSON, params);
Request request = new Request.Builder()
        .url(url)
        .post(body)
        .build();

Response response = null;
response = client.newCall(request).execute();
String responseBody = response.body().string();

Upvotes: 1

Victor Calatramas
Victor Calatramas

Reputation: 869

If the response is sent in the body you can get it with:

response.body().string();

You just had to look on the documentation

¡Salud!

Upvotes: 1

Related Questions