Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/385.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何连接到MovieDB API Web服务?_Java_Json_Web Services_Jakarta Ee_Getjson - Fatal编程技术网

Java 如何连接到MovieDB API Web服务?

Java 如何连接到MovieDB API Web服务?,java,json,web-services,jakarta-ee,getjson,Java,Json,Web Services,Jakarta Ee,Getjson,我是webservice的新手,目前正处于学习阶段。没有多少在线内容提供有关MovieDB API webservice使用的信息。当然不是,我只是专注于在屏幕上获取电影信息 因此,根据我请求的信息,当我粘贴到浏览器中时,我得到了JSON响应 我想使用JAVA、SOAP编写一个Web服务来解析JSON并获取所需信息。我尝试使用HttpURLConnection,然后使用BufferedReader,但它不起作用 请给我推荐一些更好的选择。任何链接/博客都会有帮助 这是代码片段 public cl

我是webservice的新手,目前正处于学习阶段。没有多少在线内容提供有关MovieDB API webservice使用的信息。当然不是,我只是专注于在屏幕上获取电影信息

因此,根据我请求的信息,当我粘贴到浏览器中时,我得到了JSON响应

我想使用JAVA、SOAP编写一个Web服务来解析JSON并获取所需信息。我尝试使用HttpURLConnection,然后使用BufferedReader,但它不起作用

请给我推荐一些更好的选择。任何链接/博客都会有帮助

这是代码片段

public class TestJSON {

/**
 * @param args
 */
public static void main(String[] args) {
    try{
        URL url = new URL("http://api.themoviedb.org/3/movie/550?api_key=MYKEY/3/movie/550");
        HttpURLConnection con = (HttpURLConnection) url.openConnection();
        con.setDoOutput(true);
        con.setRequestMethod("GET");
        con.setRequestProperty("Content-Type", "application/json");

        String input = "";

        OutputStream os = con.getOutputStream();
        os.write(input.getBytes());
        os.flush();

        if (con.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
            throw new RuntimeException("Failed : HTTP error code : "
                + con.getResponseCode());
        }

        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);
        }

        con.disconnect();


    }
    catch(MalformedURLException m){
        System.out.println("Malformed URL");
    }
    catch(IOException ioe){
        System.out.println("IO exception");
    }


}
}

提前谢谢


Zingo

尝试以下代码从url读取输出:

BufferedReader in = new BufferedReader(
                          new InputStreamReader(conn.getInputStream()));
String inputLine;
StringBuffer html = new StringBuffer();

while ((inputLine = in.readLine()) != null) {
    html.append(inputLine);
}
in.close();

永远不要羞于分享您尝试过的代码。@JunedAhsan谢谢我现在有了我的代码。您能提到您遇到的错误/异常吗?@JunedAhsan我遇到了IO异常。。。因此,我尝试调试代码,发现HttpURLConnection的对象con的响应为NULL。其中,当我尝试链接表单浏览器时,我得到了一些JSON响应。因此,连接存在一些问题。我得到了java.lang.RuntimeException:Failed:HTTP错误代码:401@Zingo您之所以获得此信息,是因为您的令牌/密钥无效。出于安全原因,我无法提供密钥。该键是有效的,当我在url中插入实际键并将其粘贴到浏览器中时,它工作正常。所以我认为关键不是问题。我访问服务的方式似乎有问题。@Zingo我对服务不确定。但401表示未经授权,因此您可能无法将某些凭据作为所需标头的一部分发送。如果您有该服务的文档,请尝试查找该信息。@JunedAhsan即使该密钥无效,也不会通过异常进行验证。相反,它应该提供