18 messaggi dal 07 gennaio 2016
Ciao Moreno,
mettendo in chiaro il parametro in effetti non lo passava perché avevo sbagliato a scrivere la URL, ora cosi me lo ha passato :

var response = await client.GetAsync("http://localhost:80/Menu/" + idLocale);

Marco.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ok, allora per scoprire questi problemi puoi anche usare il debugger. Sai come usarlo?
Mettendo un breakpoint all'interno dell'action GetMenu avresti visto che il valore di idLocale era una stringa vuota.

Altra cosa... dovresti validare il valore. Al momento hai questo ma hai visto che non è stato efficace nel rilevare la stringa vuota.
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}


Invece potresti fare una cosa del genere, per verificare che sia stato passato solo uno dei valori ammessi.
switch (idLocale)
{
  case "it":
  case "en":
  case "fr":
  //Questi sono i valori ammessi
  break;

  default:
    //In tutti gli altri casi, restituiamo una bad request
    return BadRequest(ModelState);
}


Una soluzione ancora migliore sarebbe quella di rendere idLocale una enum anziché una string.

ciao,
Moreno

Enjoy learning and just keep making
18 messaggi dal 07 gennaio 2016
Ciao Moreno,
scusami ma non ho specificato ovvero idlocale sarebbe una stringa che mi serve per identificare un locale (inteso come ristorante bar etc.).
Si so usare il debugger e in effetti non so perché non l'ho usato.
In ogni caso ho scoperto una cosa nuova sul fatto di vedere la query di EFCore nell'ouput di VS che proprio non avevo visto.

La richiesta che invio dal client con getAsync e l'url più il mio parametro è corretta scriverla cosi?
var response = await client.GetAsync("http://localhost:80/Menu/" + idLocale);

Il contenuto lo leggo in questo modo : response.Content.ReadAsStringAsync().Result;

Ovviamente adesso ci sarà il token nella header in questo modo :
//client.DefaultRequestHeaders.Add("Authorization", $"Bearer {token.Result}");

La URL base "http://localhost:80/" dovrò inserirla per comodità in un file di config? Il client sarà un client mobile con Xamarin.


Grazie mille.

Marco.
Modificato da Pibe93 il 14 novembre 2018 17.09 -

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.