java .io.IOException: Неожиданный код ответа для CONNECT: 400 - PullRequest
3 голосов
/ 17 февраля 2020

Я использую Okhttp-клиент для получения токена OAuth 2.0 на основе Rest API.

При развертывании через Weblogi c 12 c отображается ошибка java .io.IOException: Неожиданный код ответа для CONNECT: 400

Я пытался изменить методы реализации и методы заголовка в разных стилях, возможно, мой запрос не выполняется, потому что я предоставляю неверные учетные данные, но ничего не изменилось.

Кто-нибудь может подсказать, что я делаю неправильно в своем коде?

Код клиента

public String Post (String url, String json) throws IOException {

        Response response = null;
        try {

        logger.info("FMS WEBSERVICE LOG >>> Posting method...");

        RequestBody body = RequestBody.create(JSON, json);

        logger.info("FMS WEBSERVICE LOG >>> body: " + body);

        Request request = new Request.Builder().url(url).post(body).build();

        logger.info("FMS WEBSERVICE LOG >>> request: " + request);
        response = client.newCall(request).execute();

        logger.info("FMS WEBSERVICE LOG >>> returning: " + response.toString());

        }
        catch (Exception e) {
            logger.info("FMS WEBSERVICE LOG >>> exception in WebServiceClient: " + e);
        }

        return response.body().string();

    }

@GET
    @Path("/fundTransfer")
    @Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON)
    public String soapCaller() throws IOException, JSONException  {

        logger.info("FMS WEBSERVICE LOG >>> Inside the client method");

        String json = new StringBuilder()
                .append("{")
                .append("\"grant_type\":\"client_credentials\",")
                .append("\"client_id\":\"0146b9a4-7e99-4c83-8e9e-6049cfec55da\",")
                .append("\"client_secret\":\"nY3oL5xQ3bJ8yT3nC1nV5bY4mY6eW7yP1nY6dS6rQ2nE5iR0rM\",")
                .append("\"scope\":\"ABLApis\"")
                .append("}").toString();

        logger.info("FMS WEBSERVICE LOG >>> JSON >>> " + json.toString());

        String response = Post("https://221.120.211.69:443/abl-api/uat/oauth2/token", json);

        logger.info("FMS WEBSERVICE LOG >>> response >>> " + response);

        return response;

    }

Я использую почтальон для отправки запроса GET по этому URL: http: /// FMS_WEB_SERVICES / fmsServices / fundTransfer

1 Ответ

0 голосов
/ 17 февраля 2020

CONNECT - это метод HTTP, который OkHttp использует для создания HTTPS-соединения через прокси-сервер. Он использует либо прокси-сервер, настроенный в вашем OkHttpClient, либо тот, который JVM предпочитает через свою функцию ProxySelector.

Ответ 400 от CONNECT подразумевает, что прокси не нравится запрос CONNECT. Возможно, вам нужно вообще отключить прокси (передать Proxy.NO_PROXY в OkHttpClient.Builder) или исправить его, чтобы он принимал этот вызов.

...