使用 Java Jersey api 获取 REST api 请求的 post 错误 405

Getting Error 405 for post request to REST api using Java Jersey api

我使用 Jersey API 编写了一个方法来向 api 发出 post 请求。 api 要求数据 post 格式为 JSON 并且需要基本授权 header 但是当我 运行 下面的代码并传递 object 它导致以下错误

java.lang.RuntimeException: Failed : HTTP error code : 405
at com.shumbamoney.yomoney.SendRequest.send(SendRequest.java:40)

。java 代码如下。

 public String send(TransactionRequestObject tRObject){

    Gson gson = new Gson();
    Gson gsonBuilder = new GsonBuilder().create();
    String jsonRObject = gsonBuilder.toJson(tRObject);


    ApiCredentials credentials = new ApiCredentials();
    postUrl = credentials.getURL();
    AgentCode = credentials.getAgentCode();
    Password = credentials.getPassword();
    System.out.println(jsonRObject);

   // jersey code
    try{
        Client client = Client.create();
        WebResource webResource = client.resource(postUrl);
        ClientResponse response = webResource.type("application/json; charset=ISO-8859-1").header(HttpHeaders.AUTHORIZATION, "Basic "+
                AgentCode+":"+Password).post(ClientResponse.class, jsonRObject);
        if (response.getStatus() != 200) {
            throw new RuntimeException("Failed : HTTP error code : "
                    + response.getStatus());
        }

        System.out.println("Output from Server .... \n");
        String output = response.getEntity(String.class);
        System.out.println(output);
    }catch(Exception e){
        e.printStackTrace();
    }

    return "success";
}

非常感谢您的帮助。

你的代码做了它应该做的所有事情:发送请求并从 API 获得响应,所以错误不是来自你的代码,而是来自你请求的服务器。
尝试使用邮递员 POST 到 url,如果你仍然收到 405 错误,那么你可以确保问题不是来自你的代码。

感谢大家的贡献,我真的很感激他们。原来问题出在我请求的服务器上。