访问https://api.twitter.com将返回403错误视为禁止

时间:2015-01-15 16:14:58

标签: c# twitter-oauth

我正在尝试使用以下代码通过我的.net代码访问https://api.twitter.com

 var address = new Uri(TwitterBaseUri);
            var restTemplate = new RestTemplate(address);
            restTemplate.RequestInterceptors.Add(new BasicSigningRequestInterceptor(ConsumerKey, ConsumerSecret));
            restTemplate.MessageConverters.Add(new DataContractJsonHttpMessageConverter());

            string body = "grant_type=client_credentials";
            var entity = new HttpEntity(body);
            entity.Headers["Content-Type"] = "application/x-www-form-urlencoded;charset=UTF-8";
            var response = restTemplate.PostForObject<OAuthResponse>("oauth2/token", entity);
            _accessToken = response.AccessToken;

我在家里访问它时没有看到任何问题....但是当我连接到我的办公室vpn或在办公室访问它时..它会引发403禁止错误。

我们获得了Twitter的访问权限,我们可以访问twitter.com,无需办公室的任何问题。任何人都可以帮忙。

我们的测试应用程序正在发送以下连接请求:

CONNECT api.twitter.com:443 HTTP/1.1
Host: api.twitter.com
Proxy-Connection: Keep-Alive

回复如下:

HTTP/1.1 403 Forbidden
Cache-Control: no-cache
Pragma: no-cache
Content-Type: text/html; charset=utf-8
Proxy-Connection: close
Connection: close
Content-Length: 513

1 个答案:

答案 0 :(得分:0)

您是否需要在办公室访问Twitter时提供任何身份验证信息,例如网络用户名/密码?

如果是,那么您需要在请求中传递相同的信息,以便能够通过VPN网络验证您的请求。

上述建议的样本是

ICredentials credentials = new     
NetworkCredential("Joe",SecurelyStoredPassword,"mydomain");
        math.Credentials = credentials;