2011-08-09 36 views
2

當我使用GET時,不會發生這種情況。401當使用scribe oauth進行POST時的響應java

這不起作用:

ProxyAuthenticator pa = new ProxyAuthenticator(); 
Authenticator.setDefault(pa); 

OAuthService service = new ServiceBuilder().provider(TwitterApi.class).apiKey(strAPIKey).apiSecret(strAPISecret).build(); 
Token requestToken = service.getRequestToken(); 

Scanner in = new Scanner(System.in); 
Verifier verifier = new Verifier(in.nextLine()); 
String url = "http://api.twitter.com/1/statuses/update.json?status=helllllooooo"; 

OAuthRequest request = new OAuthRequest(Verb.POST, url); 
service.signRequest(accessToken , request2); 
final Response response = request.send(); 

響應返回401。然而,使用GET與上面的代碼響應返回200。 即

url = "http://api.twitter.com/1/account/verify_credentials.json"; 
OAuthRequest request = new OAuthRequest(Verb.GET, url); 
service.signRequest(accessToken, request); 

Response resp = request.send(); 

任何想法我應該做什麼?

回答

2

我知道這是用不同的語言提出的,但其中一些原則是相同的。其中一個答案提到了在java中解決這個問題。

Getting 401 on Twitter OAuth POST requests

+0

原來我的應用訪問類型在Twitter網站上設置爲「只讀」。 在您的應用程序設置頁面(例如twitter.com/apps/edit/12345)上有一個單選按鈕字段,如下所示:默認訪問類型:讀取和寫入/只讀如果選中「只讀」,則狀態更新API將返回401。 –

相關問題