2012-07-31 37 views
0
工作

我试图上传使用划线的照片,并且它似乎并没有与收到错误的工作:使用划线,OAuth的回声似乎并不与Twitpic

Authentication challenged received is null 

而且我也没有的想法,由于缺乏关于如何解决这个问题的文件。

相关的代码是:

try{ 
     OAuthRequest r = new OAuthRequest(Verb.POST, url); 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     toSend.writeTo(out); 
     r.addPayload(out.toByteArray()); 
     r.addHeader(toSend.getContentType().getName(), toSend.getContentType().getValue()); 

     OAuth10aServiceImpl oauth = (OAuth10aServiceImpl)oauthImpl; 
     OAuthRequest sr = new OAuthRequest(Verb.GET, serviceProvider); 
     sr.addOAuthParameter(OAuthConstants.TOKEN, oauthToken.getToken()); 
     sr.addOAuthParameter(OAuthConstants.REALM,"http://api.twitter.com/"); 
     oauth.addOAuthParams(sr, client._oauthToken); 

     r.addHeader("X-Auth-Service-Provider",serviceProvider); 
     String oauthHeader = oauth.api.getHeaderExtractor().extract(sr); 
     r.addHeader("X-Verify-Credentials-Authorization", oauthHeader); 

     System.out.println(r.getHeaders().get("X-Verify-Credentials-Authorization")); 

     return r.send(); 
    }catch(Exception e){ 
     e.printStackTrace(); 
     return null; 
    } 

我想这件事情与消费者的关键,因为它似乎并没有被添加到签名,但我也不太清楚到底发生了什么上:/

任何帮助,将不胜感激

+0

噢,我改变抄写一些地区的能见度(其中像yfrog一些服务是不同的),所以我可以访问我所需要的零件 – 2012-07-31 14:59:07

回答

1

固定。下面是代码:

 OAuthRequest r = new OAuthRequest(Verb.POST, url); 
     ByteArrayOutputStream out = new ByteArrayOutputStream(); 
     toSend.writeTo(out); 
     r.addPayload(out.toByteArray()); 
     r.addHeader(toSend.getContentType().getName(), toSend.getContentType().getValue()); 

     OAuth10aServiceImpl oauth = (OAuth10aServiceImpl)client._oauth; 
     OAuthRequest sr = new OAuthRequest(Verb.GET, serviceProvider); 
     oauth.signRequest(client._oauthToken, sr); 

     r.addHeader("X-Auth-Service-Provider",serviceProvider); 
     String oauthHeader = sr.getHeaders().get("Authorization"); 
     r.addHeader("X-Verify-Credentials-Authorization", oauthHeader); 

对于任何人想知道如何工作的,toSend是包含文件和其他StringBody零件和client._oauthTokenToken对象HttpEntityr是我的要求twitpic和serviceProvider是Twitter API的验证凭证链接