2016-03-05 5 views
1

Отработанные часы пытаются понять это. Сообщение ответа всегда имеет ошибку 404 Не найдена. Любая помощь будет оценена!C# HttpClient возвращает ошибку 404 Не найдено

public static class BackendlessAPIHelper 
{ 
    internal static string appId = "my-app-id"; 
    internal static string restSecret = "my-api-secret"; 
    internal static string backendlessBase = "https://api.backendless.com/"; 
    internal static string signupUrl = "v1/user/register"; 

    public static async Task<bool> UserSignup(string username, string password) 
    { 
     bool signupsuccessful = false; 
     var client = new HttpClient(); 
     UserSignupBackendless newuser = new UserSignupBackendless { email = username, password = password }; 
     string newuserjson = JsonConvert.SerializeObject(newuser); 

     try 
     { 
      client.BaseAddress = new Uri(backendlessBase); 
      client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); 
      client.DefaultRequestHeaders.Add("application-id", BackendlessAPIHelper.appId); 
      client.DefaultRequestHeaders.Add("secret-key", BackendlessAPIHelper.restSecret); 
      client.DefaultRequestHeaders.Add("application-type", "REST"); 
      StringContent theContent = new StringContent(newuserjson, System.Text.Encoding.UTF8, "application/json"); 

      HttpResponseMessage response = await client.PostAsync(backendlessBase+signupUrl, theContent); 
      if (response.IsSuccessStatusCode) 
      { 
       signupsuccessful = true; 
       return signupsuccessful; 
      } 
      else 
       return signupsuccessful; 
     } 
     catch(Exception ex) 
     { 
      ex.ToString(); 
      return signupsuccessful; 
     } 
    } 
} 

Вот документация API: https://backendless.com/documentation/users/rest/users_user_registration.htm

Я последовал за статью, расположенную здесь: http://blogs.msdn.com/b/wsdevsol/archive/2013/02/05/how-to-use-httpclient-to-post-json-data.aspx

Update: Я понял ошибку. URL-адрес регистрации неверен (пропущен символ).

+0

Возможно, вы захотите проверить [Fiddler] (http://www.telerik.com/fiddler), берет гадость из таких отладочных вещей. –

+0

Спасибо @ Aydin Adn. Я обязательно попробую. –

ответ

1

Я думаю, что ваша база URL становится дублируется:

client.BaseAddress = new Uri(backendlessBase); 
// ... 
HttpResponseMessage response = await client.PostAsync(backendlessBase+signupUrl, theContent); 

Вы указываете backendlessBase дважды. Если вы уже указали базу с помощью BaseAddress, не указывайте ее снова в вызове.

Также, если вы внимательно прочитали документы, это users/register, а не user/register.

+0

Я удалил backendlessBase из вызова PostAsync. теперь у него есть signupUrl. Все еще возвращает ту же ошибку. –

+0

yep, я понял, что только сейчас. Спасибо, что указали, @Matti Virkkunen. –

Смежные вопросы