The format of the URI could not be determined

di il
5 risposte

The format of the URI could not be determined

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

  • Re: The format of the URI could not be determined

    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!
  • Re: The format of the URI could not be determined

    Ma per forza: che acciderbolina e'

    "api/NomeController/"

    ???????

    NON E' una URI !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    E' solo una stringa qualunque!!!

    https://en.wikipedia.org/wiki/Uniform_Resource_Identifier


    @Alka, lo slash finale NON CENTRA UNA CIPPA! Anche in una URI/URL
  • Re: The format of the URI could not be determined

    Per avere un controllo più preciso dell'uri che vai a produrre puoi usare il metodo "iswellformeduristring" https://docs.microsoft.com/en-us/dotnet/api/system.uri.iswellformeduristring?view=net-5.0
  • Re: The format of the URI could not be determined

    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.
  • Re: The format of the URI could not be determined

    Grazie a tutti per le risposte
Devi accedere o registrarti per scrivere nel forum
5 risposte