بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
خطای عجیب در محتوای دریافتی با volley(درست شد)
مدیریت گفتگو
آخرین تغییر: 9 سال پیش
سلام دوستان
من با تستی که خارج از برنامه انجام میدم درست جواب میگیرم ولی زمانی که با برنامه میخوام تست کنم مشکل دارم و برنامه وارد متد 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);
پاسخها 2
من در این قسمت لاگ گذاشتم و متوجه شدم که متغیر 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;
}
}
نظرات
من قبلا این کارو کردم مشکلی نبوده ولی حالا به این مشکلات خوردم
کسی تا حالا با وولی به این مشکل بر نخورده؟!
واقعا کسی نمیدونه دلیل این مشکل چی هست!؟ یه جایی خوندم که volley بعضی اوقات نمیتونه ارتباط برقرار کنه! این درسته؟ و اینکه گفتن از Retrofit استفاده بشه بهتره. چکار کنم؟
بزرگواران سایت..استاد یا یکی از مدیریت سایت که وارد هستن میتونن بگن مشکل من کجاست. باور کنید خیلی گشتم ولی چیزی دستگیرم نشد
خیلی درگیر این هستم تروخدا راهنمایی کنید . بگید چه کنم؟
خدارو شکر درست شد
ولی خیلی دوس داشتم دوستان حداقل راهنمایی هم بکنن که دلگرم بشم به کارم
اینجای کدم رو
@Override
public String getBodyContentType() {
return "application/json; charset=utf-8";
}
به این صورت تغییر دادم و درست شد.
@Override
public String getBodyContentType() {
return "application/json";
}
همین...
نظرات
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات