دستتون درد بابت کمکی که کردین نگین خودش کاری نمی کنه من تا قسمت کاور ها رفته بودم جلو اونجا گیر کرده بودم و شما زحمت کشیدین من کلا با این جیسون ارای و جیسون ابجکت مشکل دارم !
بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ
مشکل درکار با Volley
مدیریت گفتگو
آخرین تغییر: 9 سال پیش
این جیسون من هست که از سمت سرور می گیرم
{
"has_error": false,
"response": [
{
"id": 1,
"name": "21",
"en_name": "21",
"singer_id": 1,
"albom_date": "2010",
"description": "البوم 21",
"cover": {
"256": "http://undermusic.ir/up/albom/256_adle.jpg",
"384": "http://undermusic.ir/up/albom/384_adle.jpg",
"512": "http://undermusic.ir/up/albom/512_adle.jpg",
"base": "http://undermusic.ir/up/albom/base_adle.jpg"
}
}
],
"state_code": 200
}
و این کد های سمت کلاینت که دو مقدار ارسال می کنم و سپس این جیسون رو دریافت می کنم اما توی بیرون کشیدن مقادیر داخل جیسون مشکل دارم!
public void get_albom(final String mobile_id, final String key,onAlbumReceived onAlbumReceived) {
Map<String, String> map = new HashMap<>();
map.put("mobile_id", mobile_id);
map.put("key", key);
VolleyRequestHelper helper = new VolleyRequestHelper(Request.Method.POST, G.URL_ADDRESS2 + "get_albom", map, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
Volley.newRequestQueue(G.context).add(helper);
}
لطفا راهنمایی کنید که چطور مقادیر has_error و مقادیر داخل response رو بکشم بیرون؟
پاسخها 2
مشاهده پاسخ صحیح
پاسخ صحیح
بازم سلام
StringRequest request = new StringRequest(Request.Method.POST,G.URL_ADDRESS2 + "get_albom", new Response.Listener<String>() {
@Override
public void onResponse(String response) {
Log.d("response", response.toString());
try {
JSONObject json = new JSONObject(response);
boolean has_error = json.getBoolean("has_error");
JSONArray jr = json.getJSONArray("response");
for (int i = 0; i < jr.length(); i++) {
JSONObject jsonObject = jr.getJSONObject(i);
String id = jsonObject.getString("id");
String name = jsonObject.getString("name");
String en_name = jsonObject.getString("en_name");
int singer_id = jsonObject.getInt("singer_id");
String albom_date = jsonObject.getString("albom_date");
String description = jsonObject.getString("description");
JSONObject json_cover = jsonObject.getJSONObject("cover");
String s256 = json_cover.getString("256");
String s384 = json_cover.getString("384");
String s512 = json_cover.getString("512");
String base = json_cover.getString("base");
}
int state_code = json.getInt("state_code");
}
catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
VolleyLog.d("Error: " + error.getMessage());
}
}) {
Map<String, String> map = new HashMap<>();
@Override
protected Map<String, String> getParams() {
map.put("mobile_id", mobile_id);
map.put("key", key);
return map;
}
};
RequestQueue queue = Volley.newRequestQueue(getActivity());
queue.add(request);
این رو امتحان کنید ببنید درسته یا نه!
که اگر درست بود من هم یه سوالی از شما دارم؟!
نظرات
ینی درست شد؟
نه من چنین جسارتی نمیکنم داداشم. دوست دارم تا جایی که میتونم کمک کنم و میدونستم گیر کارت کجاست واسه همین خودم نشستم دقیق بررسیش کردم. ولی از اونجایی که دسترسی به url نداشتم دیگه نمیدونستم درسته یا نه ولی بنظر درست میاد دیگه نمیدونم. موفق باشین
کاملا درست بود
این کدی که خواستین :
public class VolleyRequestHelper extends StringRequest {
private Map<String, String> params;
public VolleyRequestHelper(int method, String url, Map<String, String> params,
Response.Listener<String> listener, Response.ErrorListener errorListener)
{
super(method, url, listener, errorListener);
this.params = params;
}
@Override
protected Map<String, String> getParams() throws AuthFailureError
{
return params;
}
}
نظرات
ممنونم . آخه من یه جای کدم برای دانلود فایل هست که به مشکل خوردم و هر چی هم میکنم کسی کمک نکرده و راهنمایی نمیکنن. متاسفانه حضور بجه ها در انجمن کمرنگ شده
من برای دانلود فایل هام از این کلاس استفاده می کنم. لینک
ممنون از معرفی این لینک. ولی همون کدی که گذاشتم هم فکر میکنم درسته ولی مشکل اصلی من فرستادن Authorization Basic به Header هست که نمیدونم به چه شکل این کارو در کد خودم انجام بدم! و اینکه در این لینکی که معرفی کردین هم چنین چیزی نیست البته سوالی رو طرح کردم تا ببینم دوستان جواب میدن یا نه! امیدوارم بتونم این کار رو انجام بدم
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
ویرایش
پیام
نظرات