2017-12-12 15 views
2

の違い。私がなった場合は、C#のにそれを取るしようとするとC#GitHubのSCIMのAPI //私はGitHubの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 

::私はcURLのでそれらを連絡するとき それはようなものだ

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; 
     } 

私は実行すると、私のcURLのすべてが正常に動作しますが、私は同じことをしようとすると、 C#で403エラーが発生しました。

それは非標準のフィールドを「受け入れる」に関連していませんか?

+1

fiddlerを実行して、どちらの場合でも正確に送信される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; 
     } 
関連する問題