Saltar al contenido

Delphi w Indy 10: idHTTPRequest POST siempre es HTTP 1.0, ¿cómo convertirlo en HTTP 1.1?

Estate atento porque en esta división vas a encontrar el resultado que buscas.Esta sección ha sido probado por nuestros expertos para garantizar la calidad y veracidad de nuestro post.

Solución:

Incluir la hoKeepOrigProtocol opción en el HTTPOptions conjunto de propiedades (establecerlo en True). Excepto que mantenga el ProtocolVersion propiedad establecida en pv1_1 (que es el valor predeterminado).

En el TIdCustomHTTP.Post código del método hay un comentario que explica el comportamiento actual:

Actualmente, al emitir un POST, IdHTTP configurará automáticamente el protocolo a la versión 1.0 independientemente del valor que tenía inicialmente.
Esto se debe a que hay algunos servidores que no respetan el RFC en toda su extensión. En particular, no respetan el envío/no envío del encabezado Expect: 100-Continue. Hasta que encontremos una solución óptima que NO rompa el RFC, restringiremos POSTS a la versión 1.0.

Unas líneas más abajo está el cambio a la versión 1.0 con el siguiente comentario:

// If hoKeepOrigProtocol is SET, it is possible to assume that the developer
// is sure in operations of the server
if not (hoKeepOrigProtocol in FOptions) then begin
  if Connected then begin
    Disconnect;
  end;
  FProtocolVersion := pv1_0;
end;

Y el código anterior se omite (la versión no cambia) si tiene el hoKeepOrigProtocol opción incluida en el HTTPOptions.

Recuerda algo, que tienes concesión de esclarecer si te fue de ayuda.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *