首页 > 解决方案 > 使用 Java Jersey api 对 REST api 的发布请求获取错误 405

问题描述

我编写了一个使用 Jersey API 向 api 发出 post 请求的方法。该 api 要求发布的数据采用 JSON 格式,并且需要一个基本授权标头,但是当我运行下面的代码并传递对象时,它会导致以下错误

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

非常感谢您的帮助。

标签: javajerseyjersey-client

解决方案


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


推荐阅读