2011-03-21 10 views
0

Vous vous demandez si vous pouvez aider. J'utilise C# sur le framework .net 3.5. Où je tente de créer un utilisateur via l'api tenderapp. A chaque tentative, j'obtiens un 'Le serveur distant a renvoyé une erreur: (422) Entité non traitable. '.Créer un nouvel utilisateur via tenderapp api

J'utilise le code suivant:

string username = "Eddie"; 
string password = "password"; 
string tenderUrl = string.Format("https://{0}:{1}@api.tenderapp.com/sitekey/users", username, password); 

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(tenderUrl); 
request.Accept = "application/vnd.tender-v1+json"; 
request.ContentType = "application/json"; 
request.Method = "POST"; 
string postData = "{'email':'***@eddie.com','password':'test','password_confirmation':'test'}"; 


byte[] byteArray = Encoding.UTF8.GetBytes(postData); 
request.ContentLength = byteArray.Length; 

Stream dataStream = request.GetRequestStream(); 
dataStream.Write(byteArray, 0, byteArray.Length); 
dataStream.Close(); 

WebResponse response = request.GetResponse();//error returned here 

Console.WriteLine(((HttpWebResponse)response).StatusDescription); 

dataStream = response.GetResponseStream(); 
StreamReader reader = new StreamReader(dataStream); 
string responseFromServer = reader.ReadToEnd(); 
Console.WriteLine(responseFromServer); 

reader.Close(); 
dataStream.Close(); 
response.Close(); 

Je ne sais pas si la chaîne postData est à l'origine de l'erreur. Pour plus d'informations s'il vous plaît voir https://help.tenderapp.com/kb/api/users

Serait reconnaissant si quelqu'un peut me diriger dans la bonne direction.

Merci, Eddie

Répondre

0

a obtenu ce travail. Le mot de passe pour créer un nouvel utilisateur doit être au moins des caractères. Tidied les choses un peu, mais voici le code de travail.

public void createTenderUser(string supportUser, string supportPassword, string userEmail, string userPassword) 
{ 

    //Throw argument exceptions 

    string tenderUrl = string.Format("https://{0}:{1}@api.tenderapp.com/iremoco/users/", HttpUtility.UrlEncode(supportUser), HttpUtility.UrlEncode(supportPassword)); 
    string postData = string.Format("{{'email':'{0}','password':'{1}','password_confirmation':'{1}'}}", userEmail, userPassword); 
    if (userPassword.Length >= 6) 
    { 
     try 
     { 
      System.Net.ServicePointManager.Expect100Continue = false; 
      var request = (HttpWebRequest)WebRequest.Create(tenderUrl); 
      request.Accept = "application/vnd.tender-v1+json"; 
      request.ContentType = "application/json"; 
      request.Method = "POST"; 
      byte[] bytes = Encoding.UTF8.GetBytes(postData); 
      request.ContentLength = bytes.Length; 
      Stream dataStream = request.GetRequestStream(); 
      dataStream.Write(bytes, 0, bytes.Length); 
      dataStream.Close(); 
      WebResponse response = request.GetResponse(); 
     } 
     catch 
     { 
      //display error 
     } 
    } 
    else { 
     //display error 
    } 
} 

Merci, Eddie

Questions connexes