Java REST API 客户端

Java REST API CLient

我有 java 客户端点击我创建的 API 但是当我 运行 基本上是 java 客户端的 class 然后它抛出例外。 这里是例外。

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 但它不起作用它也抛出相同的异常。

URL url = 新 URL("http://192.168.1.3:8080/JAXRS-FileUpload/rest/files/upload");

提前致谢。

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

405 return 代码表示 "Method not allowed",在某些情况下当资源完全丢失时可以看到。 404 表示 "Not Found".