如何连接到TMDB api

时间:2013-10-17 23:44:25

标签: java api themoviedb-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     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)     在movieDBapiconnnection.connection.main(connection.java:17)

4 个答案:

答案 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()来实现这一目标。