Soy un novato de la API web que redacta un servicio RESTFul Web Api en .Net 4. He configurado un controlador para una clase a la que llamo Authentication
. El problema que tengo es que cuando publico o pongo datos JSON en el servicio de API web, se llaman mis controladores en el controlador, pero los objetos de los parámetros tienen datos NULL en ellos. Puedo obtener datos con éxito, pero Publicar y Poner vienen con objetos de parámetros vacíos..NET 4 Web API que recibe datos NULL en los parámetros
He probado desde una aplicación cliente y Fiddler, y obtengo el mismo resultado. Esto es lo que estoy enviando desde 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"}
Cuando me puse un punto de interrupción en el controlador Poner en el controlador de autenticación:
public void Put(string IDstring, Authentication value)
{
}
me sale el siguiente en la ventana de inspección:
IDstring null string
value {bbsRESTResources.Authentication} bbsRESTResources.Authentication
hashvalue null string
password null string
username null string
mi clase de autenticación es el siguiente:
namespace bbsRESTResources
{
public class Authentication
{
public string username;
public string password;
public string hashvalue;
}
}
mi ruta se ve así:
routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
Por favor, no se preocupe por si es o no es una buena manera de manejar la autenticación. Este es solo el primer paso para probar mi aplicación de extremo a extremo. He buscado ejemplos de otras personas con este problema y no he encontrado ninguno.
Limpié mi ruta para enviar {username} y cambié la declaración del método a: public void Put (string username, Authentication value). Ahora obtengo el nombre de usuario correctamente, pero el valor sigue siendo un objeto de Autenticación con todos los valores nulos para los miembros. El controlador de publicación se codifica como se publicó (pero se llamó publicación) y también devuelve valores nulos para los miembros del objeto de autenticación. – Dan