Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Request working fine in postman, but getting a 403 in OkHTTP

I'm trying to make a request to the Genius API, but I'm running into some issues using OkHTTP. This is my small script I'm using to make the call:

public class OkHttpScript {

OkHttpClient client = new OkHttpClient();

String run(String url) throws IOException {
    Request request = new Request.Builder()
            .header("Authorization", "Bearer uDtfeAgTKL3_YnOxco4NV6B-WVZAIGyuzgH6Yp07FiV9K9ZRFOAa3r3YoxHVG1Gg")
            .url(url)
            .build();

    try (Response response = client.newCall(request).execute()) {
        return response.body().string();
    }
}

public static void main(String[] args) throws IOException {

    OkHttpScript okHttpScript = new OkHttpScript();

    String response = okHttpScript.run("http://api.genius.com/songs/378195/");

    System.out.println(response);
}


}

When I run this script, I get a 403 error:

{"meta":{"status":401,"message":"This call requires an access_token. Please see: https://genius.com/developers"}}

For reference, here is a picture of me making the same exact request with Postman, and it works:

Postman picture

Any ideas on what the problem could be?

Edit:

Not sure if this is normal, but when I print out my request object that gets built, I see no indication that there are headers in the request:

Request{method=GET, url=http://api.genius.com/songs/378195/, tag=null}

Is what I get. Could this be part of the problem?

Edit2:

Nevermind, doing a

System.out.println(newRequest.headers());

gives me what I originally put in:

Authorization: Bearer 4mfDBVzCnp2S1Fc0l0K0cfqOrQYjRrb-OHi8W1f-PPU7LNLI6-cXY2E727-1gHYR
like image 555
Alex Hermstad Avatar asked Nov 09 '22 02:11

Alex Hermstad


1 Answers

So I figured out what my problem was. I'm not sure of the details behind it, but I should have been using my URL has https://api.genius.com/songs/378195/ instead of http://api.genius.com/songs/378195/

Postman seems fine with the http, but OkHttp needed https.

like image 154
Alex Hermstad Avatar answered Nov 14 '22 23:11

Alex Hermstad