Исключение Okhttp

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

public String login(String json) throws IOException {

        OkHttpClient client = new OkHttpClient();
        Gson gson = new Gson();
        Agent agent = gson.fromJson(json, Agent.class);
        json = gson.toJson(agent, Agent.class);
        String url = "http://laravel-zona-azul.herokuapp.com/api/v1/login";

        Request.Builder builder = new Request.Builder();

        builder.url(url);

        MediaType mediaType =
                MediaType.parse("application/json; charset=utf-8");

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

        builder.post(body)
        .addHeader("login", agent.login)
        .addHeader("cache-control", agent.password);
        Log.d("MYAPP", "Body: " + body);
        Request request = builder.build();
        try{
            Response response = client.newCall(request).execute();
            return response.body().string();
        }
        catch (IOException e){
            e.printStackTrace();
        }


        return "";
    }

Что за исключение? Добавьте его с вопросом

ADM 20.03.2019 07:22

Я отправляю свой ответ, посмотрите на него.

Tanveer Munir 20.03.2019 07:53
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
2
57
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Используйте это, он отлично работает для меня.

client.newCall(request).enqueue(new Callback() {
            @Override
            public void onFailure(Call call, IOException e) {
              e.printStackTrace();
            }

            @Override
            public void onResponse(Call call, Response response) throws IOException {
                if (response != null)
                    try {
                        response.body().string();
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
            }
        });

Вместо использования этого

try{
            Response response = client.newCall(request).execute();
            return response.body().string();
        }
        catch (IOException e){
            e.printStackTrace();
        }

Другие вопросы по теме