407 Autenticazione proxy richiesta

0

Dovremmo scrivere codice in modo diverso per gestire l'esecuzione di un proxy di sistema per le richieste Http?

Ho sviluppato un'applicazione che carica molti file da una rete di clienti su Internet tramite un'API REST per un lungo periodo di tempo. Lo eseguo su un PC nel loro dominio.

Tuttavia, quando lo eseguo su un particolare ambiente client, dopo un certo periodo di tempo arbitrario, tutte le richieste iniziano a generare un'eccezione:

407 Proxy Authentication required.

Il PC è configurato per utilizzare un proxy. Non specificherò alcuna informazione sul proxy nel mio codice, quindi suppongo che stia semplicemente usando il proxy di sistema.

Se metto in pausa i caricamenti e attendo un po 'di tempo prima di riprendere, sembra che risolva il problema.

Se eseguo più istanze della mia applicazione su questa macchina allo stesso tempo, si può iniziare a restituire 407 eccezioni mentre l'altra sta canticchiando.

C'è una logica di riprova nell'app, in cui ogni volta che un determinato file riproverà 3 volte prima di arrendersi. Non ho mai assistito al recupero da questo errore 407 quando riprovo (mentre si ripristina su altri tipi di errori).

A volte un singolo file riceve questo errore, a differenza di quanto accade per tutti i caricamenti per un periodo di tempo.

Inoltre, potrebbe sempre comportarsi in questo modo quando si esegue un proxy. Questo è solo il primo cliente a cui ho dovuto eseguire l'app per cui ne è stato configurato uno.

Sono completamente a rischio se si tratta di un problema di configurazione proxy sul lato client o di un problema con la mia applicazione.

Mi scuso se questo non è il forum StackExchange corretto, l'ho postato su StackOverflow ma non ha ottenuto alcuna trazione, quindi sto tentando di attaccare il problema da un'altra angolazione.

    
posta SeanOB 06.05.2017 - 02:51
fonte

1 risposta

1

L'errore 407 è stato probabilmente emesso dal proxy sul lato client della richiesta. La risposta dovrebbe includere un'intestazione Proxy-Authenticate che indica in che modo l'applicazione client che effettua l'autenticazione deve essere eseguita con il proxy.

Se l'applicazione client è un browser Web e si utilizza JavaScript per accedere all'API REST, il browser Web deve essere configurato per utilizzare il proxy. Se configurato correttamente, il browser Web deve gestire 407 errori eseguendo l'autorizzazione in base alla configurazione del proxy.

Se l'applicazione client è qualcosa che hai creato, allora l'applicazione deve essere configurata per utilizzare un proxy. Dal momento che l'hai taggato come .net, dovresti guardare System.Net.IWebProxy . Ad esempio, se si utilizza qualcosa come WebRequest per inviare la richiesta REST HTTP, è possibile impostare WebRequest.Proxy per ogni istanza o eseguirla una volta con static WebRequest.DefaultWebProxy .

Ti consiglio di provare a impostarlo sul valore di WebProxy.GetDefaultProxy() per impostazione predefinita. Credo che GetDefaultProxy() restituirà null se nessun proxy è configurato, quindi la richiesta web si comporterà come previsto. Potresti anche prendere in considerazione l'implementazione della configurazione di override per risolvere una configurazione proxy personalizzata.

    
risposta data 07.05.2017 - 21:41
fonte

Leggi altre domande sui tag