[英]Response from Postman shows 200, But Android returns 403
我正在嘗試使用 Volley 開發一個 android 應用程序,當我檢查POSTMAN
並檢索200
時,我用來通信的 api 工作正常。
但是當我在我的應用程序中使用相同的 API 時,它返回給我403
"Forbidden" <p〉You don't have permission to access /API/checkPassOtp on this server.〈/p〉
我已經為這個問題嘗試了多種解決方案,但對我沒有任何幫助。
誰能幫幫我嗎。
附加凌空代碼和錯誤響應
JSONObject jsonBody = new JSONObject();
try {
jsonBody.put("otp", otp);
Log.e("jsonBody", jsonBody.toString());
} catch (JSONException e) {
e.printStackTrace();
}
JsonObjectRequest jsonObjReq = new JsonObjectRequest(Request.Method.POST, URL, jsonBody, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
// handle response data
VolleyHelper.progressDialog.dismiss();
Log.e("onResponse", response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyHelper.progressDialog.dismiss();
Toast.makeText(getApplicationContext(),error.toString(),Toast.LENGTH_SHORT).show();
Log.e("onErrorResponse", error.toString());
}
}) {
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/json");
return params;
}
};
jsonObjReq.setRetryPolicy(new DefaultRetryPolicy(DefaultRetryPolicy.DEFAULT_TIMEOUT_MS * 2, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT));
Application.getInstance().addToRequestQueue(jsonObjReq, "app");
volleyHelper.showProgressDialogWithTitle(MainActivity.this);
嘗試使用
“接受”,“應用程序/ json”
在您的參數中(同時使用)。
與公司的網絡服務器連接時,我必須使用x-api-key,但是我不確定您是否需要它。
--> 在 android 中使用
https<\/code>而不是
http<\/code> ,Postman 使用 http 似乎很好,但 OkHttp 需要 https。
我被困了一天,因為這個錯誤
403 forbidden<\/code>在 android 中
403 forbidden<\/code> ,但在 Postman 中獲得了 200 次成功。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.