2015-04-08 28 views
0

我需要你的幫助!OAuth。推特。 StatusCode:403. SSL是必需的。 C#

我的代碼:

string twitterRequestTokenUrl = "http://api.twitter.com/oauth/request_token"; 


HttpRequestMessage request = new HttpRequestMessage(); 
    string data = "oauth_consumer_key=\"" + oauth_consumer_key + 
        "\", oauth_nonce=\"" + oauth_nonce + 
        "\", oauth_signature=\"" + Uri.EscapeDataString(oauth_signature) + 
        "\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"" + oauth_timestamp + 
        "\", oauth_version=\"1.0\""; 
    request.Headers.Authorization = new  System.Net.Http.Headers.AuthenticationHeaderValue("OAuth", data); 
    request.RequestUri = new Uri(twitterRequestTokenUrl, UriKind.Absolute); 

    request.Method = new HttpMethod("POST");  
    var response = await httpClient.SendAsync(request); 

可能是什麼問題,我發送探詢:

請求{方法:POST,RequestUri: 'http://api.twitter.com/oauth/request_token',版本:1.1,內容: ,集管:{授權:OAuth的 oauth_consumer_key = 「*******************」, oauth_nonce = 「NjM1NjQwOTY0MzAzMjMwNjgw」, oauth_signature = 「nIQIuJqRLP2naUxgC0cTHqFqUkc%3D」, oauth_signature_method = 「HMAC-SHA1」,oauth_timestamp = 「1428485230」, oauth_version = 「1.0」}} System.Net.Http.HttpRequestMessage

,並得到以下答案:

的StatusCode: 403,ReasonPhrase:'Forbidden',Version:1.1,Content: System.Net.Http.StreamContent,Headers:{connection:close date:Wed, 08 Apr 2015 09:06:50 GMT server:tsa_b set-cookie: guest_id = v1%3A142848401049508299;域= .twitter.com;路徑= /; Expires = Fri,07-Apr-2017 09:06:50 UTC x-connection-hash: 407806cc38f466361aa7e9efb2a35601 x-response-time:5 Content-Length:16 content-type:text/plain;字符集= UTF-8}需要使用SSL

+1

試着改變你的'twitterRequestTokenUrl'使用 「https」 開頭,而不是http –

+0

THANK YOU SO MUCH!是工作!!! – user3588235

+0

不客氣!如果它對你有幫助,請接受答案。乾杯! –

回答

0

改變

string twitterRequestTokenUrl = "http://api.twitter.com/oauth/request_token"; 

string twitterRequestTokenUrl = "https://api.twitter.com/oauth/request_token"; 

應該解決您的問題。

你看到的403狀態碼的原因是因爲 「only SSL connections are allowed in Twitter API endpoints