Problema con llamada a API Rest desde .net en core_user_create_users

Problema con llamada a API Rest desde .net en core_user_create_users

de Juan Souto -
Número de respuestas: 1

Buenos días,


estoy utilizando el siguiente código para crear usuarios desde una aplicación en .net:

String token = "e2a35dbfdaee78097c7ba489xxxxxxxx";

 MoodleUser user = new MoodleUser();
 user.username = WebUtility.UrlEncode("username");
 user.password = WebUtility.UrlEncode("the_password");
 user.firstname = WebUtility.UrlEncode("Michael");
 user.lastname = WebUtility.UrlEncode("York");
 user.email = WebUtility.UrlEncode("test@gmail.com");

List<MoodleUser> userList = new List<MoodleUser>();
userList.Add(user);

Array arrUsers = userList.ToArray();

String postData = String.Format(@"users[0][username]={0}&users[0][password]={1}&users[0][firstname]={2}&users[0][lastname]={3}&users[0][email]={4}&users[0][preferences][0][type]={5}&users[0][preferences][0][value]={6}", user.username, user.password, user.firstname, user.lastname, user.email, "auth_forcepasswordchange", "1");

 string createRequest = string.Format("http://domain.es/webservice/rest/server.php?wstoken={0}&wsfunction={1}&moodlewsrestformat=json", token, "core_user_create_users");

// Call Moodle REST Service
 HttpWebRequest req = (HttpWebRequest)WebRequest.Create(createRequest);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";

// Encode the parameters as form data:
 byte[] formData = UTF8Encoding.UTF8.GetBytes(postData);
req.ContentLength = formData.Length; 

// Write out the form Data to the request:
using (Stream post = req.GetRequestStream())
 {
      post.Write(formData, 0, formData.Length);
 }

El problema es que cuando realizo la llamada con los parámetros preferences:

users[0][preferences][0][type]={5}&users[0][preferences][0][value]={6}", ..... "auth_forcepasswordchange", "1");
me devuelve el error "Detectado valor de parámetro no válido", si hago la llamada si los parámetro de preferences, funciona perfectamente.


Gracias por todo

Juan Souto


Promedio de valoraciones: -
En respuesta a Juan Souto

Re: Problema con llamada a API Rest desde .net en core_user_create_users

de Roberto Martínez -

Hola :D


Me parece que el error es tu password; debe contener minimo una minúscula, mínimo una mayúscula, un número  y un símbolo no alfanumérico por ejemplo: Password_2015