2013-12-19 30 views
0

我收到了關於github請求的錯誤。github在github中使用RestRequest的身份驗證

「要求由行政法規規定禁止,請確保您的要求有一個用戶代理頭(http://developer.github.com/v3/#user-agent-required)檢查https://developer.github.com其他可能的原因。」

這是我的代碼:

var client = new RestClient 
      { 
       BaseUrl = "https://api.github.com", 
       Authenticator = new HttpBasicAuthenticator(_username, _password) 
      }; 
      //client.AddDefaultHeader("User-Agent", "http://developer.github.com/v3/"+_username); 

      _restRequest = new RestRequest(Method.POST) 
      { 
       Resource = _resource, 
       RequestFormat = DataFormat.Json 
      }; 
      // _restRequest.AddHeader("User-Agent",); 
      _restRequest.AddBody(new { title = form["feedbackmessage"], body = html, labels = new List<string> { _defaultlabel } }); 
      _restRequest.AddHeader("User-Agent", "http://developer.github.com/v3/#" + _username); 
      var response = client.Execute(_restRequest); 

回答

1

GitHub Documentation,所有API請求必須包含一個有效的用戶 - 代理標題。

我所做的是這樣的添加該用戶代理給我的HttpClient:

_httpClient.DefaultRequestHeaders.Add("User-Agent", "Other"); 

,我做了一個正常的要求,例如:

var json = await HttpClient.GetStringAsync(url); 

,它工作得很好。

另一個很好的參考,你可以檢查here

0

我今天也面臨類似的問題。據我所知,從GitHub文檔,它不一定是類似URL的風格,就像你的例子。只需_username作爲User-Agent就足夠了。

它並沒有爲我與_restRequest.AddHeader("User-Agent"...工作以及和開始工作只增加後:

client.UserAgent = _username; 

var client = new RestClient 
      { 
       BaseUrl = "https://api.github.com", 
       Authenticator = new HttpBasicAuthenticator(_username, _password), 
       UserAgent = _username 
      }; 
相關問題