Я использую модификацию в приложении для 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 ?