Добавить зависимость:
реализация 'ком. android .volley: volley: 1.1.0'
API вызова с использованием приведенного ниже фрагмента кода:
private void APICall() {
// TODO: Implement this method to send token to your app server.
Common.ProgressDialogShow(context, getString(R.string.please_wait));
Map<String, String> params = new HashMap<String, String>();
params.put("username", "username");
params.put("password", "password");
params.put("grant_type", "password");
JsonObjectRequest request = new JsonObjectRequest("https://api.webname.com/oauth/token", new JSONObject(params),
new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
try {
parseJsonResponse(response);
} catch (Exception e) {
e.printStackTrace();
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error.networkResponse != null) {
int statusCode = error.networkResponse.statusCode;
NetworkResponse response = error.networkResponse;
Log.d("testerror", "" + statusCode + " " + response.data);
}
}
}) {
@Override
public Map<String, String> getHeaders() {
Map<String, String> headers = new HashMap<String, String>();
headers.put("User-agent", "Mozilla/5.0 (TV; rv:44.0) Gecko/44.0 Firefox/44.0");
return headers;
}
};
Common.setVolleyConnectionTimeout(request);
ApplicationClass.getInstance().getRequestQueue().add(request);
}
/**
* <b>Description</b> - Get back response for calling APICall API
*
* @param jsonObject - Pass API response
*/
private void parseJsonResponse(JSONObject jsonObject) {
try {
Common.ProgressDialogDismiss();
Log.i("get response", "get response" + jsonObject);
String access_token = jsonObject.getString("access_token");
String token_type = jsonObject.getString("token_type");
String refresh_token = jsonObject.getString("refresh_token");
String expires_in = jsonObject.getString("expires_in");
String scope = jsonObject.getString("scope");
String jti = jsonObject.getString("jti");
Log.d(TAG, "access_token: " + access_token);
Log.d(TAG, "token_type: " + token_type);
Log.d(TAG, "refresh_token: " + refresh_token);
Log.d(TAG, "expires_in: " + expires_in);
Log.d(TAG, "scope: " + scope);
Log.d(TAG, "jti: " + jti);
} catch (Exception e) {
e.getStackTrace();
}
}
Вы сказали, что работаете нормально в эмуляторе и выпускаете в реальном устройстве, а затем посмотрите по ссылкам ниже:
Soluion-1
Soluion-2
Soluion-3
Soluion-4
Этот код поможет вам ..