Forum > Lazarus e il web

THTTPSend e proxy

<< < (6/6)

DragoRosso:
News:
Per quello che sono riuscito a testare sembra che Lazarus e FPC non implementano alcun modo per rilevare un proxy da sistema operativo (almeno per Windows).

Ho implementato una Api di Windows per fare ciò, senza quindi impostare alcunchè nel programma. Le applicazioni rimangono quindi indipendenti dalla presenza o meno del proxy (salvo che questo non necessiti di credenziali per l'accesso).

Stò testandola in varie condizioni (anche reali in una rete multiserver) con Lazarus. Pazienza ... e domani pubblico il sorgente.

Ovviamente tale soluzione funziona solo sotto Windows.

Ciao e buon San Silvestro.

DragoRosso:
Questa è l'unità in Pascal per il riporto delle informazioni sul proxy in uso nel sistema operativo.
Per adesso funziona in Windows e fà uso di una API ben precisa, "che fa questo di mestiere".

L'uso è più che semplice. Basta inserire l'unità nelle Uses nella sezione Interface della vostra Form o Unità principale.

Si inserisce in una sola Unit.

All'inizio del Vs. programma si inizializza da sola e riporta nelle variabili globali LPI_ProxyHost di tipo string e LPI_ProxyPort di tipo integer i valori del Proxy se trovato (altrimenti rimane la stringa vuota e l'intero a 0).

Se volete durante il programma ricercare nuovamente i dati del Proxi, semplicemnete chiamate:


--- Codice: ---
DiscoveryProxyInfo;
--- Termina codice ---

e i due dati verranno "rinfrescati".

Le due variabili le potete usare all'interno del vs. programma per settare i componenti che necessitano di tali valori.

ATTENZIONE: i proxy che richiedono l'autenticazione necessitano di ulteriori passaggi (normalmente previsti dai componenti).

L'unità non è completa ed esaustiva, con il tempo potrà essere perfezionata. Riportate eventuali varianti che trovate (ad esempio un formato diverso riportato per i vs. proxy).

Spero che questa unità sia di aiuto.

Ciao

EDIT: Rimosso  l'allegato per aggiornamenti

bonmario:
Grazie, se riesco la provo settimana prossima al lavoro.

Ciao, Mario

DragoRosso:
Ho rimesso l'allegato aggiornato.

Ho inserito nella chiamata un parametro opzionale (true / false).
Se c'è qualcosa che non và, chiama la funzione direttamente dal tuo codice con il parametro true.
Visualizzerà una box con la stringa di definizione del proxy, facendo uno screenshoot può essere utile per debug.


--- Codice: ---
DiscoveryProxyInfo(true);
--- Termina codice ---

Ulteriori info nel sorgente.

Ciao

Navigazione

[0] Indice dei post

[*] Pagina precedente

Vai alla versione completa