我正在尝试使用以下代码通过我的.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
答案 0 :(得分:0)
您是否需要在办公室访问Twitter时提供任何身份验证信息,例如网络用户名/密码?
如果是,那么您需要在请求中传递相同的信息,以便能够通过VPN网络验证您的请求。
上述建议的样本是
ICredentials credentials = new
NetworkCredential("Joe",SecurelyStoredPassword,"mydomain");
math.Credentials = credentials;