Sono un newbie API Web che scrive un servizio AEST Web RESTFul in .Net 4. Ho configurato un controller per una classe che sto chiamando Authentication
. Il problema che sto avendo è che quando inserisco o metto i dati JSON nel servizio API web, vengono chiamati i gestori del controller, ma gli oggetti parametro contengono dati NULL. Posso ottenere dati con successo, ma Post e Put hanno trovato oggetti parametro vuoti.. Rete 4 Web API che riceve i dati NULL nei parametri
Ho provato da un'applicazione client e Fiddler e ottengo lo stesso risultato. Ecco quello che mando da Fiddler:
Action: PUT
URI: http://127.0.0.1:81/Authentication/xyz/
HTTP Version: HTTP/1.1
Request Headers:
User-Agent: Fiddler
Host: 127.0.0.1:81
Content-Type: application/json; charset=utf-8
Content-Length: 75
Request Body:
{"hashvalue":"kbVFNeBbNHmYQXXlS6d7Ag==","password":"test","username":"dan"}
Quando ho creato un punto di interruzione nel gestore Put nel controller di autenticazione:
public void Put(string IDstring, Authentication value)
{
}
ottengo quanto segue nella finestra di controllo:
IDstring null string
value {bbsRESTResources.Authentication} bbsRESTResources.Authentication
hashvalue null string
password null string
username null string
mia classe di autenticazione si presenta così:
namespace bbsRESTResources
{
public class Authentication
{
public string username;
public string password;
public string hashvalue;
}
}
il mio percorso è simile al seguente:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Si prega di non preoccuparti di se questo è un buon modo per gestire l'autenticazione. Questo è solo un primo passaggio per testare la mia applicazione da end-to-end. Ho cercato esempi di altre persone che hanno questo problema e non ne ho trovato.
Ho ripulito il percorso per inviare {nome utente} e ho modificato la dichiarazione del metodo in: public void Put (nome utente stringa, valore di autenticazione). Ora, ottengo il nome utente correttamente, ma il valore è ancora un oggetto di autenticazione con tutti i valori nulli per i membri. Il gestore di post è codificato come hai postato (ma chiamato Post), e restituisce anche null per i membri dell'oggetto di autenticazione. – Dan