oAuth 1.0 获取请求改造 android
Posted
技术标签:
【中文标题】oAuth 1.0 获取请求改造 android【英文标题】:oAuth 1.0 get request retrofit android 【发布时间】:2018-01-16 13:11:36 【问题描述】:我想使用 Retrofit 实现 oAuth 1.0 获取请求,但无法获得响应。
邮递员的回应:
"1":
"entity_id": "1",
"parent_id": "0",
"position": "0",
"level": "0",
"name": "Root Catalog"
,
"2":
"entity_id": "2",
"parent_id": "1",
"position": "1",
"level": "1",
"name": "Default Category",
"is_active": "1"
我的界面是:
@GET("/api/rest/categories/?")
@Headers( "Content-Type: application/json")
Call<ResponseBody> getProduct( @Field("oauth_consumer_key") String grantType,
@Field("oauth_token") String username,
@Field("oauth_signature_method") String sig,
@Field("oauth_timestamp") String timS,
@Field("oauth_nonce") String nonc,
@Field("oauth_version") String vers,
@Header("Authorization") String authorization);
方法调用是:
private void callService()
byte[] credentials = "CONSUMER_SECRETE:TOKEN_SECRETE".getBytes();
String basicAuth = "Basic " + Base64.getEncoder().encodeToString(credentials);
UserClient apiService = ApiClient.getClient().create(UserClient.class);
Call<ResponseBody> call = apiService.getProduct("CONSUMER_KEY","TOKEN_KEY","HMAC-SHA1","1502218838","RuH2FG","1.0",basicAuth);
call.enqueue(new Callback<ResponseBody>()
@Override
public void onResponse(Call<ResponseBody>call, Response<ResponseBody> response)
if (response.isSuccessful())
if (response.isSuccessful())
else
Toast.makeText(getApplicationContext(), "Failed", Toast.LENGTH_LONG).show();
else
//First Option of error handling..
switch(response.code())
case 404:
Toast.makeText(getApplicationContext(),R.string.server_error404, Toast.LENGTH_SHORT).show();
break;
case 500:
Toast.makeText(getApplicationContext(),R.string.server_error500, Toast.LENGTH_SHORT).show();
break;
default:
Toast.makeText(getApplicationContext(),R.string.server_errorUnknow, Toast.LENGTH_SHORT).show();
@Override
public void onFailure(Call<ResponseBody>call, Throwable t)
Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();
);
我还尝试了什么: android OAuth Retrofit Access Token Request
也尝试了其他类型,但都没有奏效。
谁能帮我解决这个问题?我想通过改造来实现这一点。
【问题讨论】:
你找到解决方案了吗? 请添加您的解决方案,我坚持使用 auth 1.0 api @SubinBabu 请查看我的回答here。我们不需要传递所有项目,改造自己处理所有。 github.com/rameshvoltella/WoocommerceAndroidOAuth1 这个可行 【参考方案1】:使用这个库https://github.com/pakerfeldt/okhttp-signpost
public class ApiClient
public static Retrofit build()
//untuk oauth ver 1 methode
OkHttpOAuthConsumer consumer = new OkHttpOAuthConsumer(Constant.CONSUMER_KEY, Constant.CONSUMER_SECRET);
consumer.setTokenWithSecret("", "");
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(new SigningInterceptor(consumer))
.build();
Retrofit.Builder builder = new Retrofit.Builder()
.baseUrl(Constant.BASE_URL_WEATHER)
.client(client)
.addConverterFactory(GsonConverterFactory.create());
Retrofit retrofit = builder.build();
return retrofit;
【讨论】:
以上是关于oAuth 1.0 获取请求改造 android的主要内容,如果未能解决你的问题,请参考以下文章