3
I’m using Postman, and when making a requisition GET, everything goes well and the JSON with the data.However, when I take the java code(below), this request and execute it, I am handed the following message code=406, message=Not Acceptable, which is strange since it works well in Postman.Someone knows what it is?
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
  .url("http://api.sualoja.com.br/clientes")
  .get()
  .addHeader("authorization", "Bearer d0f36dfb6ba2d153a29f4410411f737e3a6e205c")
  .addHeader("cache-control", "no-cache")
  .addHeader("postman-token", "0465578e-2915-c482-d425-8c00ee97ec6d")
  .build();
Response response = client.newCall(request).execute();
I tried to use another way to request using Unirest but code below but returned me the msm error, but with this message more:Unable to resolve Accept header to a representation, remembering that I took this code from Postman too, and that there it works smoothly.
HttpResponse<String> response = Unirest.get("http://api.sualoja.com.br/clientes")
            .header("authorization", "Bearer 256ce87661709544aa32e6e97f779e0e5d9aa842")
            .header("cache-control", "no-cache")
            .header("postman-token", "23b4718d-3831-cf52-dc0a-b07a3f8caa1e")
            .asString();
I used the method to show the headers, and are returned these headers Transfer-Encoding=[chunked], Server=[nginx/1.10.2], Connection=[keep-alive], Date=[Tue, 03 Oct 2017 20:05:16 GMT], Content-Type=[application/problem+json], X-Powered-By=[PHP/7.1.10]
I tested with the code represented in shell that Postman allows me to take, and it worked well, brought all the data in the terminal, but I need to do this in java.
PEOPLE I finally managed to resolve. I simply added this line to my GET request .addHeader("Accept", "application/json; q=0.5"), and from what I understand, Voce will have to add a new line of these for each type of file that your server returns, for example:
`.addHeader("Accept", "application/hal+json; q=0.5")
 .addHeader("Accept", "application/json; q=0.5")
 .addHeader("Accept", "application/x-www-form-urlencoded")`
And my code went like this. (Using Okhttp):
OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url("http://api.sualoja.com.br/clientes")
            .get()
            .addHeader("authorization", "Bearer 1c2b5f30582b4cf2831812487a34d48646580829")
            .addHeader("cache-control", "no-cache")
            .addHeader("Accept", "application/json; q=0.5")
            .addHeader("postman-token", "57989a0f-8dec-d104-c6e7-b6e2cb64be97")
            .build();
    Response response = client.newCall(request).execute();
    System.out.println(response.body().string());
I think you’re missing the content type in your header
– Rovann Linhalis
like this
.addHeader("content-type", "json")and continued the msm error, but in Postman continued to work– TheJ
trial
.addHeader("content-type", "application/json")– Rovann Linhalis
still persists in error
– TheJ
at Postman, you can see which headers he’s sending, it’s the same ?
– Rovann Linhalis
Yes, Postman is only sending this
Authorization:Bearer 922da365f641a4bb2ba9d06d9d5ca88233d26260. I removed the others and only left theauthorizationand it didn’t work either– TheJ