Java REST API CLient

时间:2016-02-16 07:03:35

标签: java api rest apiclient

我有java客户端命中我创建的API,但是当我运行基本上是java客户端的类时,它会抛出异常。 这是例外。

Exception in thread "main" java.lang.RuntimeException: Failed : HTTP error code : 405
    at TST.main(TST.java:29)

以下是代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class TST {

    // http://localhost:8080/RESTfulExample/json/product/post
    public static void main(String[] args) {

      try {

        URL url = new URL("http://localhost:8080/JAXRS-FileUpload/rest/files/upload");
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoOutput(true);
        conn.setRequestMethod("POST");
        conn.setRequestProperty("Content-Type", "text/plain");

        String input = "/home/hassan/Downloads/56963a249bff5_4__67_green-lantern_issue70.png";

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

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

        BufferedReader br = new BufferedReader(new InputStreamReader(
                (conn.getInputStream())));

        String output;
        System.out.println("Output from Server .... \n");
        while ((output = br.readLine()) != null) {
            System.out.println(output);
        }

        conn.disconnect();

      } catch (MalformedURLException e) {

        e.printStackTrace();

      } catch (IOException e) {

        e.printStackTrace();

     }

    }

}

我在本地主机上测试它我也试图用我的IP地址代替localhost但是它没有用它也会抛出相同的异常。

网址网址=新网址(“http://192.168.1.3:8080/JAXRS-FileUpload/rest/files/upload”);

提前致谢。

1 个答案:

答案 0 :(得分:3)

您尝试访问的资源不存在,或者不允许POST。您可以尝试使用GET来查看它是否存在。如果没有,则应返回404

405返回代码意味着“方法不允许”,在某些情况下可以看到资源丢失的情况。 404表示“未找到”。