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