这是我的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 at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) 在movieDBapiconnnection.connection.main(connection.java:17)
答案 0 :(得分:2)
首先,我会使用TMDB包装器。在https://github.com/Omertron/api-themoviedb获取Java包装器。使用经过全面测试和尝试过的包装器,而不是尝试连接到它并从头开始创建模型。通常在实例化类时使用包装器,将API密钥传递给构造函数,然后包装器执行其余操作。
答案 1 :(得分:1)
您的错误只是因为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密钥
答案 2 :(得分:0)
您传递了错误的网址,传递了此网址 " http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99
URL url = new URL("http://api.themoviedb.org/3/movie/550?api_key=7b5e30851a9285340e78c201c4e4ab99");
答案 3 :(得分:0)
尝试后台线程中的网络部分。 使用主线程进行此类操作可能会给您一个类似的错误。 使用AsynchTask和doInBackground()来实现这一目标。