拜求大神解答。。。
String requestMethod = "POST";
/** 构建 */
String oauthSignatureMethod = "HMAC-SHA1";
String oauthNonce = UUID.randomUUID().toString().replaceAll("-","");
// String oauthTimeStamp = String.valueOf(System.currentTimeMillis());
String oauthTimeStamp =new Long(Calendar.getInstance().getTimeInMillis()/1000).toString();
String authHeader = "oauth_consumer_key=" + TWITTER_KEY +
"&oauth_nonce=" + oauthNonce +
"&oauth_signature_method=" + oauthSignatureMethod +
"&oauth_timestamp=" + oauthTimeStamp +
"&oauth_version=1.0";
String headerDebug = authHeader;
String twitter_endpoint = "https://api.twitter.com/oauth/request_token";
String twitter_endpoint_host = "api.twitter.com";
String twitter_endpoint_path = "/oauth/request_token";
String signature_base_string = requestMethod + "&"+ encode(twitter_endpoint) + "&" + encode(authHeader);
String oauth_signature = "";
try {
oauth_signature = computeSignature(signature_base_string, TWITTER_SECRET + "&"); // note the & at the end. Normally the user access_token would go here, but we don't know it yet for request_token
} catch (GeneralSecurityException e) {
e.printStackTrace();
}
catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
// each request to the twitter API 1.1 requires an "Authorization: BLAH" header. The following is what BLAH should look like
String authorizationHeaderString = "OAuth oauth_consumer_key=\"" + TWITTER_KEY + "\",oauth_signature_method=\"HMAC-SHA1\",oauth_timestamp=\"" +
oauthTimeStamp + "\",oauth_nonce=\"" + oauthNonce + "\",oauth_version=\"1.0\",oauth_signature=\"" + encode(oauth_signature) + "\"";
System.out.println("authorization_header_string=" + authorizationHeaderString);
String timestamp = String.valueOf(System.currentTimeMillis());
RequestBody requestBody = RequestBody.create(MediaType.parse("application/json"), "");
OkHttpClient okHttpClient = new OkHttpClient();
final Request request = new Request.Builder()
.url("https://api.twitter.com/oauth/request_token")
.addHeader("Authorization",authorizationHeaderString)
.post(requestBody)
.build();
List<Protocol> protos = new LinkedList<>();
protos.add(Protocol.HTTP_1_1);
okHttpClient.setProtocols(protos);
okHttpClient.newCall(request).enqueue(new com.squareup.okhttp.Callback() {
@Override
public void onFailure(Request request, IOException e) {
}
@Override
public void onResponse(Response response) throws IOException {
int code = response.code();
String result = response.body().string();
}
});
}
});