Получение ошибки 405 для отправки запроса в API REST с использованием API Java Jersey - PullRequest
0 голосов
/ 10 октября 2018

Я написал метод, используя Jersey API для отправки запроса на API.API требует, чтобы публикуемые данные были в формате JSON, и требует заголовка Basic Authorization, однако, когда я запускаю приведенный ниже код и передаю объект, это приводит к следующей ошибке

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

Ваша помощь очень ценится.

Ответы [ 2 ]

0 голосов
/ 17 октября 2018

Спасибо всем за ваш вклад, я действительно ценю их.Оказывается, проблема была на сервере, к которому я обращался.

0 голосов
/ 10 октября 2018

ваш код сделал все, что должен: отправил запрос и получил ответ от API, чтобы ошибка не исходила из вашего кода, а с сервера, к которому вы обращаетесь.
попробуйте использовать почтальончтобы отправить этот URL, если вы все еще получаете ошибку 405, вы можете убедиться, что проблема не в вашем коде.

...