* * * *

Privacy Policy

Blog italiano

Clicca qui se vuoi andare al blog italiano su Lazarus e il pascal.

Forum ufficiale

Se non siete riusciti a reperire l'informazione che cercavate nei nostri articoli o sul nostro forum vi consiglio di visitare il
Forum ufficiale di Lazarus in lingua inglese.

Lazarus 1.0

Trascinare un file nel programma
DB concetti fondamentali e ZeosLib
Recuperare codice HTML da pagina web
Mandare mail con Lazarus
Stabilire il sistema operativo
Esempio lista in pascal
File INI
Codice di attivazione
Realizzare programmi multilingua
Lavorare con le directory
Utilizzare Unità esterne
TTreeView
TTreeview e Menu
Generare controlli RUN-TIME
LazReport, PDF ed immagini
Intercettare tasti premuti
Ampliare Lazarus
Lazarus e la crittografia
System Tray con Lazarus
UIB: Unified Interbase
Il file: questo sconosciuto
Conferma di chiusura di un applicazione
Liste e puntatori
Overload di funzioni
Funzioni a parametri variabili
Proprietà
Conversione numerica
TImage su Form e Panel
Indy gestiore server FTP lato Client
PopUpMenu sotto Pulsante (TSpeedButton)
Direttiva $macro
Toolbar
Evidenziare voci TreeView
Visualizzare un file Html esterno
StatusBar - aggirare l'errore variabile duplicata
Da DataSource a Excel
Le permutazioni
Brute force
Indy 10 - Invio email con allegati
La gestione degli errori in Lazarus
Pascal Script
Linux + Zeos + Firebird
Dataset virtuale
Overload di operatori
Lavorare con file in formato JSON con Lazarus
Zeos ... dietro le quinte (prima parte)
Disporre le finestre in un blocco unico (come Delphi)
Aspetto retrò (Cmd Line)
Lazarus 1.0
Come interfacciare periferica twain
Ubuntu - aggiornare free pascal e lazarus
fpcup: installazioni parallele di lazarus e fpc
Free Pascal e Lazarus sul Raspberry Pi
Cifratura: breve guida all'uso dell'algoritmo BlowFish con lazarus e free pascal.
Creare un server multithread
guida all'installazione di fpc trunk da subversion in linux gentoo
Indice
DB concetti fondamentali e connessioni standard
Advanced Record Syntax
DB concetti fondamentali e DBGrid
DB concetti fondamentali e TDBEdit, TDBMemo e TDBText
Advanced Record Syntax: un esempio pratico
Superclasse form base per programmi gestionali (e non)
Superclasse form base per programmi gestionali (e non) #2 - log, exception call stack, application toolbox
Superclasse form base per programmi gestionali (e non) #3 - traduzione delle form
Superclasse form base per programmi gestionali (e non) #4 - wait animation
Un dialog per la connessione al database:TfmSimpleDbConnectionDialog
Installare lazarus su mac osx sierra
immagine docker per lavorare con lazarus e free pascal
TDD o Test-Driven Development
Benvenuto! Effettua l'accesso oppure registrati.
Novembre 23, 2024, 02:58:40 am

Inserisci il nome utente, la password e la durata della sessione.

107 Visitatori, 0 Utenti

Autore Topic: THTTPSend e proxy  (Letto 7367 volte)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
THTTPSend e proxy
« il: Dicembre 29, 2021, 04:31:26 pm »
Ciao a tutti,
per fare il download di file da internet, uso THTTPSend o TFPHTTPClient.
In tutti e 2 i casi, se il programma gira sul PC del lavoro, devo impostare i dati del proxy, perché altrimenti non funziona.

Stavo però pensando una cosa: in parecchi software, come ad esempio in Firefox, c'è l'opzione "Utilizza le impostazioni proxy del sistema".

E' possibile fare qualcosa di simile anche con Lazarus, riuscendo cioè a determinare da codice eventuale nome del proxy e porta?

Grazie, Mario

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2921
  • Karma: +20/-4
Re:THTTPSend e proxy
« Risposta #1 il: Dicembre 29, 2021, 04:46:19 pm »
per windows, rimanendo in ambito shell:
Codice: [Seleziona]
netsh winhttp show proxy
Imagination is more important than knowledge (A.Einstein)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1396
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:THTTPSend e proxy
« Risposta #2 il: Dicembre 29, 2021, 05:38:21 pm »
Ma un proxy, se impostato a livello di sistema operativo (Windows ha il rilevamento automatico) non dovrebbe in automatico fungere da "gateway" verso la rete esterna (rete esterna chiaramente difinita da chi ha creato la rete ed le regole proxy).

Perchè è necessario impostare un proxy in quei componenti ?

Quei componenti derivano da Synapse e FPC, usano particolari tecniche o il proxy dell'azienda di @bonmario che usa certo tipo di configurazione ?

Non ho grande esperienza sui proxy, anche perchè quando c'erano non ho mai dovuto cambiare alcunchè nelle applicazioni. Sò che ci sono proxy di vario tipo e genere (non stiamo qui a disquisire sull'ergomento .... MAGARI SUL BLOG in futuro  ;D ), ma tali da impostare il setting direttamente sull'applicazione (almeno sulle mie applicazioni) non mi è mai capitato.

Ciao

:) Ogni alba è un regalo, ogni tramonto è una conquista :)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:THTTPSend e proxy
« Risposta #3 il: Dicembre 29, 2021, 06:06:21 pm »
@nomorelogic Non funziona, mi dice che non c'è nessun proxy ...

@DragoRosso non me ne intendo, so solo che se non imposto il nome dell'host e della relativa porta, ho errori nel download, se non ricordo male errore 500.
Impostando quei 2 campi, funziona tutto. Magari è un'impostazione particolare del proxy della mia azienda, non ne ho idea !!!

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1396
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:THTTPSend e proxy
« Risposta #4 il: Dicembre 29, 2021, 07:02:50 pm »
@nomorelogic Non funziona, mi dice che non c'è nessun proxy ...

Il Proxy non viene rilevato dal sistema operativo e non è nemmeno settato manualmente, è per quello che devi inserirlo nella tua applicazione.

Se lo imposti manualmente, nella tua azienda il PC funzionerà, ma non a casa tua (dovrai disattivare il proxy a mano).

Però non dovrebbero funzionare nessuno degli altri programmi che usano internet (il browser ad esempio), a meno che attivi e disattivi il proxy all'interno delle applicazioni ad ogni cambio di rete.

......
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1396
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:THTTPSend e proxy
« Risposta #5 il: Dicembre 29, 2021, 07:17:41 pm »
Le tecniche per trovare un proxy sono note e standardizzate, per via automatica (automatica tra parentesi) o via file di configurazione.

Se il sistema operativo non lo trova, vuol dire che chi ha "costruito" il proxy e la rete non voleva farlo trovare in automatico.
In questo caso non c'è modo di trovarlo in automatico.

L'unica Una cosa che potresti fare, è inserire nel tuo programma una piccola procedura che fà il "get" http suo un indirizzo noto di internet (google ad esempio) e se fallsice imposta i valori proxy "già a te noti" nel componente.

Ciao.
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2921
  • Karma: +20/-4
Re:THTTPSend e proxy
« Risposta #6 il: Dicembre 29, 2021, 07:19:27 pm »
@nomorelogic Non funziona, mi dice che non c'è nessun proxy ...

strano

se esegui questo comando ti mostra i giusti valori?
Codice: [Seleziona]
reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
Imagination is more important than knowledge (A.Einstein)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:THTTPSend e proxy
« Risposta #7 il: Dicembre 30, 2021, 08:04:22 am »
se esegui questo comando ti mostra i giusti valori?

Sì, sono quelli corretti ... praticamente mi hai dato la riposta: leggendo prima la chiave "ProxyEnable" determino se è attivo o meno, e leggendo poi la chiave "ProxyServer", determino Host e porta

Grazie, Mario

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2921
  • Karma: +20/-4
Re:THTTPSend e proxy
« Risposta #8 il: Dicembre 30, 2021, 10:42:29 am »
a questo punto puoi evitare di lanciare il comando con ShellExecute
basta che vai a leggere quella chiave nel registry
Imagination is more important than knowledge (A.Einstein)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:THTTPSend e proxy
« Risposta #9 il: Dicembre 30, 2021, 12:46:42 pm »
Sì, grazie, ho fatto proprio così !!!

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1396
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:THTTPSend e proxy
« Risposta #10 il: Dicembre 30, 2021, 02:30:41 pm »
Vorrei approfondire il discorso proxy, legato a Windows e legato ai componenti che usi.

Nelle sedi di un cliente internazionale gira il mio software per il tracciamento dei colli. La rete è sotto proxy, ma l'applicazione non necessita di settaggi particolari per andare "dove vuole".

Il proxy limita l'accesso a Internet dei browser, ma altri software ci accedono tranquillamente (il mio, altri di diagnostica, antivirus, Windows Update, etc ...).

In allegato ci sono i settaggi del registro di Windows. Ho dovuto oscurare un pò di dati ....

Riesci a mettere in copia anche lo screenshot del tuo registro ?

Vorrei capire eventuali differenze e poi per conto mio approfondisco il tema.

Grazie. 
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:THTTPSend e proxy
« Risposta #11 il: Dicembre 30, 2021, 02:51:20 pm »
Eccolo ...

Ho incolonnato l'output per renderlo più leggibile, ed ho messo "CENSURATO !!!" dove c'era scritto qualcosa, ma erano dati "sensibili".

Ricapitolando, con i miei programmi fatti con Lazarus, funziona così: se ad esempio uso Synapse per scaricare un file, riesce a fare il download solo se imposto Host e relativa porta del proxy, in caso contrario, il download fallisce.


Codice: [Seleziona]
c:\Tmp>reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings
    CertificateRevocation       REG_DWORD    0x1
    DisableCachingOfSSLPages    REG_DWORD    0x0
    IE5_UA_Backup_Flag          REG_SZ       5.0
    PrivacyAdvanced             REG_DWORD    0x1
    SecureProtocols             REG_DWORD    0xa80
    User Agent                  REG_SZ       Mozilla/4.0 (compatible; MSIE 8.0; Win32)
    ProxyServer                 REG_SZ       CENSURATO !!!:8080
    ProxyOverride               REG_SZ       CENSURATO !!!
    ProxyEnable                 REG_DWORD    0x1
    EnableNegotiate             REG_DWORD    0x1
    MigrateProxy                REG_DWORD    0x1
    ZonesSecurityUpgrade        REG_BINARY    100EBD5A88EBD701
    WarnonZoneCrossing          REG_DWORD    0x0
    LockDatabase                REG_QWORD    0x1d7fce2e8ab9c88
    AutoConfigURL               REG_SZ       CENSURATO !!!

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\5.0
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Cache
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Connections
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Http Filters
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Lockdown_Zones
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\P3P
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Passport
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Protocols
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\TemplatePolicies
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Wpad
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ZoneMap
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Zones

DragoRosso

  • Scrittore
  • Hero Member
  • *****
  • Post: 1396
  • Karma: +44/-0
  • Prima ascoltare, poi decidere
Re:THTTPSend e proxy
« Risposta #12 il: Dicembre 30, 2021, 03:14:55 pm »
Grazie per la celerità, mi paiono molto simili i settaggi (a parte un file di configurazione pac che il tuo amministratore ha agganciato al DHCP probabilmente). Questo file di "autoconfigurazione" potrebbe cambiare effettivamente qualcosa.

Per adesso facciamo finta che non esista.

Provo a replicare il tutto con la mia rete inserendo un proxy, facendo un piccolo programmino stupido usando Synapse e altri componenti.

Potrebbe uscire un buon Articolo per il nuovo blog. Tra l'altro potrebbe essere utile per ulteriori utenti che si trovano nelle tue stesse condizioni (cosa abbastanza comune adesso che gli amministratori di rete stanno prendendo coscenza del loro ruolo).

Il mio obiettivo sarebbe quello di eliminare accessi a shell, registri di Windows o altro, proponendo delle soluzioni alternative valide nelle varie condizioni.

Tieni presente che programmo in Windows prevalentemente, e anche io faccio uso della shell (per l'eliminazione di gruppi di file non c'è metodo più veloce ad esempio), però vedo questo come anche l'accesso al registry una soluzione alquanto critica ed in bilico.

Non rivanghiamo la storia però ....

Grazie ancora e buon lavoro.

Ciao

EDIT: diimenticavo, il file pac potrebeb anche dare istruzione al PC di cambiare il proxy in fuzione a particolari situazioni. In questo caso occorrerebbe leggere il resgistry di Windows ocni qualvolta si cerca di accedere alla rete.
« Ultima modifica: Dicembre 30, 2021, 03:19:06 pm da DragoRosso »
:) Ogni alba è un regalo, ogni tramonto è una conquista :)

nomorelogic

  • Global Moderator
  • Hero Member
  • *****
  • Post: 2921
  • Karma: +20/-4
Re:THTTPSend e proxy
« Risposta #13 il: Dicembre 30, 2021, 03:35:58 pm »
se c'è possibilità di farlo cross-platform è meglio
 :)

Edit:
magari anche con una classe che incapsula diverse procedure per diversi OS
Imagination is more important than knowledge (A.Einstein)

bonmario

  • Hero Member
  • *****
  • Post: 1358
  • Karma: +11/-1
Re:THTTPSend e proxy
« Risposta #14 il: Dicembre 30, 2021, 04:37:13 pm »
Il problema grosso è che di queste cose io non ci capisco una mazza !!!

Oggi ho provato a lavorare per la prima volta col portatile nuovo, senza collegarlo al cavo ethernet, ma solo in Wi-Fi ... ora ho le idee ancora più confuse !!!

- Le impostazioni del proxy che ho io sono diverse da quelle di altri colleghi
- Se uso le loro impostazioni ho problemi, ma a loro funziona tutto bene
- Ho chiamato l'ufficio tecnico, e mi hanno impostato il proxy così come ho postato prima

Sembrava funzionare tutto, poi ho lanciato uno dei miei programmi fatti con Lazarus e mi da un errore ...
Dopo un'ora circa di smanettamenti, ho scoperto che, anche se nelle impostazioni del proxy c'è l'Host "proxy01", nei miei programmi devo mettete "proxy03", altrimenti non funzionano !!!

Ciao, Mario

 

Recenti

How To

Utenti
  • Utenti in totale: 803
  • Latest: maXim.FI
Stats
  • Post in totale: 19170
  • Topic in totale: 2287
  • Online Today: 100
  • Online Ever: 900
  • (Gennaio 21, 2020, 08:17:49 pm)
Utenti Online
Users: 0
Guests: 107
Total: 107

Disclaimer:

Questo blog non rappresenta una testata giornalistica poiché viene aggiornato senza alcuna periodicità. Non può pertanto considerarsi un prodotto editoriale ai sensi della legge n. 62/2001.