Ich versuche, eine Anfrage an die Genius API, aber ich bin in einigen Problemen mit OkHTTP laufen. Das ist mein kleines Skript verwende ich den Anruf zu tätigen:Anfrage funktioniert gut in Postbote, aber ein 403 in OkHTTP
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);
}
}
Wenn ich dieses Skript ausführen, bekomme ich einen Fehler 403:
{"meta":{"status":401,"message":"This call requires an access_token. Please see: https://genius.com/developers"}}
Als Referenz hier ist ein Bild von mir machen genau die gleiche Anfrage mit Postman, und es funktioniert:
Alle Ideen, was das Problem sein könnte?
Edit:
nicht sicher, ob das normal ist, aber wenn ich meine Anfrage Objekt auszudrucken, die, wie ich sehe keinen Hinweis darauf gebaut werden, dass es Header in der Anfrage:
Request{method=GET, url=http://api.genius.com/songs/378195/, tag=null}
Ist das, was Ich bekomme. Könnte das ein Teil des Problems sein?
Edit2:
Nevermind, ein
System.out.println(newRequest.headers());
tun gibt mir, was ursprünglich Ich habe in:
Authorization: Bearer 4mfDBVzCnp2S1Fc0l0K0cfqOrQYjRrb-OHi8W1f-PPU7LNLI6-cXY2E727-1gHYR
Verwenden Sie Wireshark, um zu sehen, wie die tatsächliche HTTP-Anforderung unterschiedlich ist. –