Зачем добавлять в мой сервисный URL "? Roundtrip = true"? - PullRequest
0 голосов
/ 14 июня 2019

Я использую модификацию в приложении для Android для сетевых звонков. Вот что я сделал для вызова веб-службы:

CertificatePinner certificatePinner = new CertificatePinner.Builder()
            .add(hostName, "sha256/#####################")
            .add(hostName, "sha256/#####################")
            .add(hostName, "sha256/#####################")
            .build();

    OkHttpClient okHttpClient = new OkHttpClient.Builder()
            .connectTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS)
            .readTimeout(CONNECTION_TIMEOUT, TimeUnit.MILLISECONDS)
            .certificatePinner(certificatePinner)
            .build();

    if (retrofit == null) {
        retrofit = new Retrofit.Builder()
                .baseUrl(BASE_URL)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create())
                .build();
    }
    return retrofit;

После вызова службы я получаю следующее сообщение в методе onResponse ():

Response{protocol=http/1.1, code=404, message=Not Found, url=https://hostname/myServiceMethod?Type=xyz?roundtrip=true}

Ниже приведен код моего интерфейса:

@Headers({"Accept:application/xyz-v1.0+json"})
@GET("/methodName/{id}/abc?type=ABC")
Call<JsonElement> getServerData(@HeaderMap Map<String, String> headers, @Path("id") String id);

Модернизация, добавление ? Roundtrip = true в конце URL. И только из-за этого я получаю код 404, не найден. Может кто-нибудь объяснить мне, почему это происходит? А как убрать это ? Roundtrip = true ?

1 Ответ

0 голосов
/ 14 июня 2019

Я не думаю, что модернизация является причиной. Я хотел бы предложить, чтобы вы использовали некоторые регистраторы / перехватчики, которые добавляют запрос «? Roundtrip = true» к перехваченному запросу. Однажды у меня была похожая проблема, случайно добавив параметр запроса в LoggingInterceptor. Я хотел бы предложить просто найти исходный код проекта для использования "туда и обратно":

Если вы используете Android Studio / Intellij IDEA: Щелкните правой кнопкой мыши на модуле / пакете> найдите в пути> "туда и обратно"

Я предполагаю, что один из результатов поиска ответит на ваш вопрос - откуда он.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...