2017-12-12 19 views
2

GITHUB API의 사용에 이상한 오류가 있습니다. 나는 컬을 문의하는 경우 는 같은있다 :C# GitHub SCIM API // cURL과 HttpClient의 차이

curl.exe -H "Accept: application/vnd.github.cloud-9-preview+json+scim" -H "Authorization: Bearer TOKEN" https://api.github.com/scim/v2/organizations/[ORG]/Users 

내가 된 경우, C 번호로 가져보십시오 :

using (var cl = new HttpClient()) 
     { 
      cl.DefaultRequestHeaders.Add("Accept", "application/vnd.github.cloud-9-preview+json+scim"); 
      cl.DefaultRequestHeaders.Add("Authorization", "Bearer " + "TOKEN"); 
      var val = cl.GetStringAsync("https://api.github.com/scim/v2/organizations/[ORG]/Users").Result; 
     } 

내 컬 모든 것이 잘 작동 실행하지만 같은 때 C#에서 403 오류가 발생했습니다.

"Accept"비표준 필드와 관련이있을 수 있습니까?

+1

피들러를 실행하고 두 경우 모두 정확히 어떤 http 요청이 전송되는지 확인하십시오. 앞으로 비슷한 문제가 있으면 도움이 될 것입니다. – Evk

답변

0

GITHUB API에 User-Agent 헤더 세트가 있어야한다는 것을 알았습니다.

"컬"로 설정했습니다.

using (var cl = new HttpClient()) 
     { 
      cl.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/vnd.github.cloud-9-preview+json+scim")); 
      cl.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", "token"); 
      cl.DefaultRequestHeaders.UserAgent.Add(new System.Net.Http.Headers.ProductInfoHeaderValue("curl", "7.46.0")); 
      var val = cl.GetStringAsync("https://api.github.com/scim/v2/organizations/[ORG]/Users").Result; 
     }