The format of the URI could not be determined

di Anonimizzato29642 il
5 risposte
Ciao,

sto testando i metodi di un Proxy che richiama le operazioni esposte dalle Web API (Rest service), il mio ambiente di lavoro è Visual Studio, C#.

Ottengo l'errore
The format of the URI could not be determined
Quest'errore viene lanciato quando, mentre inizializzo l'oggetto restProxy, viene eseguita un'istruzione nel suo costruttore che assegna al client.BaseAdress uno URI basato su una stringa statica che gli ho dato io, l'intero codice nel costruttore è questo:
public RESTUserProxy()
        {            
            _webApiEndopoint = "api/NomeController/";
            _client = new HttpClient();
            _client.BaseAddress = new Uri(_webApiEndopoint) ;       // questa istruzione scatena l'eccezionee
        }
Come posso risolvere?

5 Risposte

  • brobh ha scritto:


    Quest'errore viene lanciato quando, mentre inizializzo l'oggetto restProxy, viene eseguita un'istruzione nel suo costruttore che assegna al client.BaseAdress uno URI basato su una stringa statica che gli ho dato io, l'intero codice nel costruttore è questo:
    public RESTUserProxy()
            {            
                _webApiEndopoint = "api/NomeController/";
                _client = new HttpClient();
                _client.BaseAddress = new Uri(_webApiEndopoint) ;       // questa istruzione scatena l'eccezionee
            }
    Come posso risolvere?

    Qual è il valore che viene passato al costruttore di Uri?
    Hai verificato che sia corretto?
    Se si tratta di un indirizzo valido, hai controllato che abbia uno slash ("/") alla fine?

    Ciao!
  • migliorabile ha scritto:


    @Alka, lo slash finale NON CENTRA UNA CIPPA! Anche in una URI/URL
    Al netto della problematica specifica di questo thread, quando si usa la proprietà BaseAddress lo slash finale è molto importante in quanto la classe HttpClient utilizza il valore della proprietà combinandolo con quello relativo indicato nella richiesta per determinare l'URI finale da chiamare.

    Non ho detto che sia la presenza di uno slash a determinare la validità di un URI, ma è determinante per valorizzare correttamente la proprietà BaseAddress tenendo conto dell'uso che ne viene fatto successivamente, altrimenti si rischia di inviare la richiesta a un indirizzo diverso da quello desiderato.
  • Grazie a tutti per le risposte
Devi accedere o registrarti per scrivere nel forum
5 risposte