آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

خطای عجیب در محتوای دریافتی با volley(درست شد)

mosafer  9 سال پیش  9 سال پیش
0 0

سلام دوستان

من با تستی که خارج از برنامه انجام میدم درست جواب میگیرم ولی زمانی که با برنامه میخوام تست کنم مشکل دارم و برنامه وارد متد onErrorResponse میشه

خیلی چک کردم نمیدونم چرا باز خطا برمیگردونه.کدم رو میذارم ببینیدمشکل از چی میتونه باشه.

من با متد Post و Content-Type از نوع application/json و محتوای ارسالیم هم یه JsonObject هست.

اینم کدم : 

 
try {
/////////////////////////////////////////برای ساخت یک فایل جیسون آبچکت
JSONObject object = new JSONObject();

object.put("user_username", editText_userName.getText().toString());

user_username = object.toString();


} catch (Exception e){}



final StringRequest request = new StringRequest(Request.Method.POST, url, new Response.Listener<String>() {

@Override
public void onResponse(String response) {

Log.e("onResponse ", response.toString());

try {

JSONObject json = new JSONObject(response);



}
catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {

@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("VolleyError: " + error.getMessage());

if (error instanceof TimeoutError || error instanceof NoConnectionError) {
Toast.makeText(context,"دوباره تلاش کنید",Toast.LENGTH_LONG).show();
} else if (error instanceof AuthFailureError) {
Toast.makeText(context,"نام کاربری یا گذرواژه نامعتبر می باشد",Toast.LENGTH_LONG).show();
} else if (error instanceof ServerError) {
Toast.makeText(context,"ServerError",Toast.LENGTH_LONG).show();
} else if (error instanceof NetworkError) {
Toast.makeText(context,"NetworkError",Toast.LENGTH_LONG).show();
} else if (error instanceof ParseError) {
Toast.makeText(context,"ParseError",Toast.LENGTH_LONG).show();
}
}
}) {

@Override
public String getBodyContentType() {

return "application/json; charset=utf-8";
}

@Override
public byte[] getBody() throws AuthFailureError {

try {
return user_username == null ? null : user_username.getBytes("utf-8");

} catch (UnsupportedEncodingException uee) {

VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", user_username, "utf-8");

return null;
}

}
};

RequestQueue queue = Volley.newRequestQueue(ActivityRegister.this);
queue.add(request);

 

0 0
هر وقت با برنامه تست میزنم ServerError به من نشون میده. این همون کد 500 هست؟ و اینکه چرا اینجا اینجوریه؟ (9 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
mosafer  9 سال پیش
0 0

من در این قسمت لاگ گذاشتم و متوجه شدم که متغیر user_username خالی هست و انگار خالی میفرسته و خیلی تعجب میکنم که چرا خالیه در صورتی که هر جای دیگه لاگ میذارم این متغیر پر هست!

کسی هست راهنمایی کنه ممنون میشم؟

 

@Override
public byte[] getBody() throws AuthFailureError {

try {

Log.e("user_username ", user_username); ** این لاگ من**

return user_username == null ? null : user_username.getBytes("utf-8");

} catch (UnsupportedEncodingException uee) {

Log.e("username Body Unsuppor", user_nationalid);

VolleyLog.wtf("Unsupported Encoding while trying to get the bytes of %s using %s", user_username, "utf-8");
return null;
}
}

 

0 0
من قبلا این کارو کردم مشکلی نبوده ولی حالا به این مشکلات خوردم (9 سال پیش)
0 0
کسی تا حالا با وولی به این مشکل بر نخورده؟! (9 سال پیش)
0 0
واقعا کسی نمیدونه دلیل این مشکل چی هست!؟ یه جایی خوندم که volley بعضی اوقات نمیتونه ارتباط برقرار کنه! این درسته؟ و اینکه گفتن از Retrofit استفاده بشه بهتره. چکار کنم؟ (9 سال پیش)
0 0
بزرگواران سایت..استاد یا یکی از مدیریت سایت که وارد هستن میتونن بگن مشکل من کجاست. باور کنید خیلی گشتم ولی چیزی دستگیرم نشد (9 سال پیش)
0 0
خیلی درگیر این هستم تروخدا راهنمایی کنید . بگید چه کنم؟ (9 سال پیش)
پاسخ به سوال 
mosafer  9 سال پیش
+1 0

خدارو شکر درست شد

ولی خیلی دوس داشتم دوستان حداقل راهنمایی هم بکنن که دلگرم بشم به کارم

اینجای کدم رو 

  @Override
public String getBodyContentType() {

return "application/json; charset=utf-8";
}

به این صورت تغییر دادم و درست شد.

 
 @Override
public String getBodyContentType() {

return "application/json";
}

همین...


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .