2017-11-24 8 views
0

coinfloor에서 API를 사용하여 의 인증을받지 못했습니다. 공개/인증 GET 응답을 성공적으로 구문 분석 할 수 있지만 추가 매개 변수가있는 인증 된 개인 POST 요청을 보내는 데 문제가 있습니다. . (401), ReasonPhrase :HttpClient를 사용한 간단한 API 게시

가 현재 나는 상태 코드 얻을 내가 기본 인증 헤더를 모두 사용하고 FormUrlEncodedContent로 데이터를 전송하려고했습니다

class Program 
    { 
     static HttpClient client = new HttpClient(); 

    static void Main() 
     { 
      RunAsync().Wait(); 
     } 

     static async Task RunAsync() 
     { 
      client.BaseAddress = new Uri("https://webapi.coinfloor.co.uk:8090/bist/XBT/GBP/balance/"); 
      client.DefaultRequestHeaders.Authorization= new AuthenticationHeaderValue("Basic", Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes(string.Format("{0}:{1}", "userID/apikey", "passphrase")))); 

      var content = new FormUrlEncodedContent(new[] 
        { 
         new KeyValuePair<string, string>("User ID","userid"), 
         new KeyValuePair<string, string>("API key","apikey"), 
         new KeyValuePair<string, string>("Passphrase","pass") 

        }); 
      try 
      { 

        var result = await client.PostAsync("https://webapi.coinfloor.co.uk:8090/bist/XBT/GBP/balance/", content); 
        string resultContent = await result.Content.ReadAsStringAsync(); 

      } 

'무단'. 그들의 documentation은 "모든 개인 API 호출에 인증이 필요합니다. 요청을 인증하기 위해 사용자 ID, API 키, 암호 중 하나를 제공해야합니다."

내가 잘못하고있는 것이 확실하지 않습니까?

요청에 다른 추가 매개 변수를 어떻게 보내야합니까?

+0

피들러에서 귀하의 요청을보고 예상했던 것처럼 보일 수도 있습니다. – Evk

+0

사용자 ID, api 키 및 암호 또는 "userID/apikey"및 "passphrase"문자열 값에 대한 실제 값을 보내십니까? –

+0

감사합니다. Tobias와 Evk, 코드에 올바른 값이 있습니다.이 게시물에 대해 편집했습니다. 올바른 요청이 무엇처럼 보이는지 알아 내려고, 요청 헤더 아래에서 들쑥날쑥하게 나에게 올바른 것처럼 보이는 FormUrlEncodedContent의 값을 가진 표준 헤더와 추가 문자열을 봅니다. – user289829

답변

0

코드가 실제로 정확하다는 것을 언급하기 만하면, 여러 가지 ID와 암호로 내 부분에 실수가있었습니다.