2016-03-17 4 views
0

У меня установлена ​​учетная запись на GoDaddy и у меня есть ключи разработчика для доступа к API. Используя Fiddler, я могу построить запрос, который возвращает результаты. Однако использование следующего кода из приложения консоли не выполняется с помощью «Неавторизованный». Я использую один и тот же адрес и ключи в обоих местах.Как выполнить проверку подлинности в API GoDaddy с помощью C#?

Что мне не хватает?

 using (var client = new HttpClient()) 
     { 
      client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Authorization", "sso-key VUjHMntw_UyosKRMGaLXE4e3E1h29Xx:DSqM2jiJcRyXvSbLehjYUZ"); 

      HttpResponseMessage response = await client.GetAsync("https://api.ote-godaddy.com/v1/domains/available?domain=google.com"); 

      if (response.IsSuccessStatusCode) 
      { 
       var result = await response.Content.ReadAsAsync<string>(); 
       Console.WriteLine(result); 
      } 
      else 
      { 
       Console.WriteLine(response.ReasonPhrase); 
      } 
     } 

ПРИМЕЧАНИЕ. Ключ авторизации и секрет были изменены.

Ниже то, что я в Скрипач, который работает:

enter image description here

ответ

2

Я довольно уверен, вы отправляете заголовок аутентификации как:

Authorization: Authorization sso-key VUjHMntw_UyosKRMGaLXE4e3E1h29Xx:DSqM2jiJcRyXvSbLehjYUZ 

Попробуйте вместо этого:

client.DefaultRequestHeaders.Authorization = 
    new System.Net.Http.Headers.AuthenticationHeaderValue("sso-key", "VUjHMntw_UyosKRMGaLXE4e3E1h29Xx:DSqM2jiJcRyXvSbLehjYUZ"); 

Префикс Authorization: предназначен для y ou вызовом метода.

1

Этот конкретный вызов не требует аутентификации. Это должно сработать для вас.

static void Main(string[] args) 
    { 
     TestDomain().Wait(); 
    } 

    public static async Task<string> TestDomain() 
    { 

     using (var client = new HttpClient()) 
     { 
      //client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Authorization", "sso-key VUjHMntw_UyosKRMGaLXE4e3E1h29Xx:DSqM2jiJcRyXvSbLehjYUZ"); 

      HttpResponseMessage response = await client.GetAsync("https://api.ote-godaddy.com/v1/domains/available?domain=google.com"); 

      if (response.IsSuccessStatusCode) 
      { 
       var result = await response.Content.ReadAsStringAsync(); 
       Console.WriteLine(result); 

       return result; 
      } 
      else 
      { 
       Console.WriteLine(response.ReasonPhrase); 

       return response.ReasonPhrase; 

      } 
     } 

    } 
+0

Это правильно. Я должен был использовать другой api-вызов, чтобы продемонстрировать проблему. – DarLom

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