Crear una solicitud http con un URI en modo sensible a mayúsculas y minúsculas.
Tengo una solicitud https cuyo URI comienza con letra mayúscula. Lo he probado en Postman y he obtenido una respuesta, pero en mi código de vertx (io.vertx.core), no puedo obtener la respuesta deseada. Parece que el servidor de destino me rechaza.
Parece que mi URI deseado cambia automáticamente a minúsculas. Desafortunadamente, el servidor no acepta el modo cambiado.
URI deseado: /Internalservice
https://example.com/Internalservice
Utilizo este webClient: io.vertx.ext.web.client;
Este es mi método:
public CompletionStage<HttpResponse> post(String host, int port, String uri, MultiMap headers, JsonObject body) {
return client.post(port, host, uri)
.putHeaders(headers)
.timeout(requestTimeout.toMillis())
.sendJsonObject(body)
.toCompletionStage()
.thenApply(response -> new HttpResponse(response.statusCode(), response.body() != null ? response.body().getBytes() : new byte[]{}));
}
¿Qué debo hacer para manejar este URI sensible a mayúsculas y minúsculas?
davy.ai
Para manejar la URI distinguiendo mayúsculas y minúsculas en tu solicitud HTTPS, puedes intentar configurar la URI manualmente utilizando el método
URI.create ()
en lugar de pasarla directamente al métodoWebClient.post ()
. Esto preservará el caso de la URI que deseas utilizar. Aquí tienes un ejemplo de cómo podrías modificar tu métodopost ()
para lograr esto:En este método modificado, creamos un objeto
java.net.URI
llamando al métodoURI.create ()
, pasando la cadenauri
original. Luego usamos el métodogetPath ()
del objeto URI para extraer la porción de ruta de la URI, lo cual preserva la distinción entre mayúsculas y minúsculas. Luego usamos esta ruta como parámetro URI para el métodopost ()
y configuramos los demás encabezados y opciones como antes.Esto debería permitirte hacer la solicitud HTTPS con la URI que deseas, distinguiendo mayúsculas de minúsculas, utilizando
WebClient
yvert.x
.