Как подключиться к TMDB API
Вот мой ключ API: 7b5e30851a9285340e78c201c4e4ab99
И я пытаюсь подключиться к TMDB API: вот мой код:
package movieDBapiconnnection;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
public class connection {
public static void main(String[] args) throws Exception{
URL url = new URL("http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99/3/movie/550");
HttpURLConnection con = (HttpURLConnection) url.openConnection();
con.setDoOutput(true);
con.setRequestMethod("GET");
con.setRequestProperty("Content-Type", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader((con.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
}
}
Но это всегда показывает мне ошибку, которая:
Исключение в потоке "main" java.io.IOException: сервер вернул код ответа HTTP: 401 для URL: http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99/3/movie/550 на солнце.NET.www.protocol.http.HttpURLConnection.getInputStream(неизвестный источник) в movieDBapiconnnection.connection.main(connection.java:17)
4 ответа
Во-первых, я бы использовал оболочку TMDB. Получите оболочку Java по адресу: https://github.com/Omertron/api-themoviedb. Используйте полностью проверенную и опробованную оболочку, а не пытайтесь подключиться к ней и создавать свои модели с нуля. Обычно в оболочке, когда вы создаете экземпляр класса, вы передаете ключ API в конструктор, а оболочка делает все остальное.
Ваша ошибка просто из-за лишних символов в параметре ключа API
http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99/3/movie/550
удалите / 3 / movie / 550, так как это всего лишь опечатка, поэтому правильный
http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99
Примечание. Измените 7b5e30851a9285340e78c201c4e4ab99 на правильный ключ API.
Попробуйте сетевую часть в фоновом потоке. использование основного потока для операций такого типа, скорее всего, приведет к аналогичной ошибке. используйте AsynchTask и doInBackground() для достижения этой цели.
Вы передали неправильный URL, передайте этот URL " http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99
URL url = new URL("http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99");