Résoudre un problème d'authentification proxy requis
-
14-11-2019 - |
Question
J'ai écrit une application Delphi qui nécessite une communication avec un serveur Web distant. Je passe internet_open_type_preconfig drapeau dans la fonction InternetOpen pour initialiser l'utilisation de mon application des fonctions Wininet et que mon application pour récupérer la configuration Internet de l'utilisateur du registre.
NetHandle := InternetOpen('WebTool', INTERNET_OPEN_TYPE_PRECONFIG, nil, nil, 0);
if Assigned(NetHandle) then
begin
try
hConnect := InternetConnect(NetHandle, PChar(ServerName), ServerPort,
nil, nil, INTERNET_SERVICE_HTTP, 0, 1);
if Assigned(hConnect) then
begin
try
// Open the request
hRequest := HttpOpenRequest(hConnect, PChar('POST'),
PChar(ServerScript), nil, nil, nil,
HTTPOpenRequestFlags, 0);
if Assigned(hRequest) then
begin
Peut-être que je suis dû à mon ignorance, j'ai cru cette communication activée avec le serveur Web distant à l'aide des paramètres Internet particuliers de l'utilisateur, que ce soit une connexion directe ou via un proxy. Cela fonctionne certainement via le serveur proxy de mon entreprise.
Cependant, j'ai maintenant rencontré un client pour lequel ce qui précède ne lui permet pas d'accéder. Il voit une "authentification proxy requise" (code d'état HTTP 407) à la place.
Est-ce quelque chose que mon application devrait être manipulant (par exemple, fournir un formulaire pour entrer les détails d'authentification proxy et les transmettre avec mes demandes HTTP)? Existe-t-il une façon de ramasser ces informations automatiquement?
ou est-ce simplement bas à un problème de configuration que le service informatique du client peut facilement résoudre?
Tous les pointeurs seraient très appréciés.
La solution
You may need to handle authentication, depending on what auth methods the proxy supports (it will tell you in the 407 response). See http://msdn.microsoft.com/en-us/library/aa384220(VS.85).aspx