سرمایه گذاری متفاوت در سال نو 🍎🌱 ۳۵٪ تخفیف نوروزی ➕ حضور رایگان در مسترمایند نخبگان صنعت نرم‌افزار 💻✅
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ یوسف محمدیانی
ارور com.android.volley.ClientError در هنگام post
محسن موحد حل شده توسط محسن موحد

با سلام خدمت استاد گرامی و دوستان عزیز

موقع post کردن دیتا به سرور با ارور com.android.volley.ClientError مواجه میشم...

فکر می‌کنم باید accessToken یا secret_key برای این درخواست تو header ست بشه ولی روش کار رو نمیدونم ...هر چی سرچ کردم هم به جایی نرسیدم...
api من هم api نوشته‌های وردپرس هست

ممنون میشم راهنمایی بفرمایید

سلام. کدهاتون بهمراه متن خطارو بفرستید.

محسن موحد ۱۲ فروردین ۱۳۹۹، ۰۲:۴۰

سلام....ممنونم

متن خطا : com.android.volley.ClientError

JSONObject jsonObject = new JSONObject();
try {
    jsonObject.put("id",5);
}catch (JSONException e){
    e.printStackTrace();
}
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest(Request.Method.POST, "https://bartarleather.com/wp-json/wp/v2/posts", jsonObject, new Response.Listener<JSONObject>() {
    @Override
    public void onResponse(JSONObject response) {
        Log.i(TAG, "onResponse: "+response);
    }
}, new Response.ErrorListener() {
    @Override
    public void onErrorResponse(VolleyError error) {
        Log.i(TAG, "onErrorResponse: "+error.toString());
    }
}) ;
final RequestQueue Postrequest = Volley.newRequestQueue(getContext());
Postrequest.add(jsonObjectRequest);
یوسف محمدیانی ۱۲ فروردین ۱۳۹۹، ۰۸:۳۳

سلام. منظورم از متن خطا volley unexpected response code 400 بود. کدتون رو تست کردم خطارو خوندم.

ارور کد 400: Bad Request

آدرس داخل کدتون پارامتر آیدی رو دریافت نمیکنه و خود آدرس(بدون پارامتر)، پاسخ رو برمیگردونه، بنابراین مقدار پارامتر آیدی رو پست نکنید و بجای متغیر jsonObject مقدار null رو بگذارید:

JsonObjectRequest jsonObjectRequest =
                new JsonObjectRequest(Request.Method.POST,
                        "https://bartarleather.com/wp-json/wc/v3/orders?consumer_key=ck_c2dfe862aeb41be827eea911f128f5414bc7df7f&consumer_secret=cs_74fb39a358df42254f4aa92bfdab10b7370342b1"
                        , null,
                        new Response.Listener<JSONObject>() {
                            @Override
                            public void
                            onResponse(JSONObject response) {
                                Log.i(TAG, "onResponse: " + response);
                            }
                        },
                        new Response.ErrorListener() {
                            @Override
                            public void onErrorResponse(VolleyError error) {
                                Log.i(TAG, "onErrorResponse: " + error.toString());
                            }
                        });

 

بهترین پاسخ
محسن موحد ۱۲ فروردین ۱۳۹۹، ۰۹:۱۹