Ver Mensaje Individual
  #5  
Antiguo 20-04-2023
Avatar de pgranados
pgranados pgranados is offline
Miembro
 
Registrado: sep 2022
Ubicación: México
Posts: 297
Reputación: 3
pgranados Va por buen camino
Cita:
Empezado por elrayo76 Ver Mensaje
Gracias por responder pgranados. Igualmente lo que pasaste funciona a medias y te cuento porque.

He probado con solo pasarle como URL www.clubdelphi.com sin incluir HTTPS y da como que la URL es sin seguridad (HTTP). El tema por lo que pude ver en el código de las Indy es que utiliza lo que le pongas delante HTTPS (para indicar que tiene seguridad ) o HTTP (sin seguridad). Si no se le pasa nada y tiene seguridad lo toma como que no tiene porque no detecta el HTTPS delante.

A mi modo de verlo si no existe una forma verdadera de validar esto sería intentar devolver o enviar los datos por HTTPS y si da error atraparlo y mandarlo por HTTP. También se puede hacer mandar por HTTP y si da error atraparlo y usar HTTPS.

¿Como es que hacen entonces los navegadores para con solo pasar www.clubdelphi.com saber si tienen que agregar HTTPS o HTTP para poder mostrar el sitio

Saludos,
El Rayo
Hice pruebas en mi equipo y funciono lo siguiente (te paso el código mañana, olvide mi laptop)

Crea un WebBrowser y la propiedad navigate asigna la url, ejemplo: www.clubdelphi.com en algun evento, puede ser formCreate de ejemplo, despues busca en el webBrowser un evento donde el sitio web ya fue cargado (no recuerdo el nombre) y manda a llamar esta funcion

Código Delphi [-]
function ObtenerURL(WebBrowser: TWebBrowser): string;
var
  Doc: IHTMLDocument2;
  ShellBrowser: IWebBrowser2;
begin
  Result := '';
  ShellBrowser := (WebBrowser.ControlInterface as IWebBrowser2);
  if Assigned(ShellBrowser.Document) and Supports(ShellBrowser.Document, IHTMLDocument2, Doc) then
    Result := Doc.location.href;
end;

Donde Result es la URL completa del sitio y te regresara: https://www.clubdelphi.com/ , ya con el resultado solamente verifica si las primeras posiciones del string son HTTPS o HTTP y listo.


No es una forma elegante y en mi punto de vista hasta se me hace exagerado, pero creo que es la forma mas sencilla de lograr lo que quieres.

Saludos.
Responder Con Cita