همواره یکی از مشکلات برنامه نویسان نوشتن کدهای جهت کارکرد با سرویسها یا api های اینترنتی می باشد. با آپدیت های متوالی اندروید بعضی کد ها منسوخ و نهایتا بعضی کتابخانه ها نیز به خاطر آپدیت نشدن منسوخ می شوند.یکی از معدود کتابخانه هایی که تا به حال آپدیت های متوالی دریافت کرده است این کتابخانه می باشد و با استفاده از تابع های آن به راحتی می توانید هر کاری را انجام بدهید.
این کتابخانه سازگار با تمامی اس دی کا ها میباشد.
دستور زیر را به فایل build.gradle پروژه خود اضافه کنید و اجازه دهید اندروید استودیو کتابخانه را دانلود نماید.
dependencies {
compile 'com.loopj.android:android-async-http:1.4.9'
}
نحوه استفاده
درخواست get
یک شی از کلاس AsyncHttpClient ایجاد کنید و دستورات خود را با آن انجام دهید.
AsyncHttpClient client = new AsyncHttpClient(); // ایجاد شی از AsyncHttpClient
client.get("https://www.google.com", new AsyncHttpResponseHandler() { // فراخوانی تابع get و ارسال پارامترهای مربوطه
@Override
public void onStart() {
// قبل از اعمال درخواست این تابع فراخوانی می شود.
// called before request is started
}
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] response) {
// بعد از انجام درخواست درصورت موفق بودن این تابع فراخوانی می شود.
// called when response HTTP status is "200 OK"
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Throwable e) {
// بعد از انجام درخواست در صورت ناموفق بودن این تابع فراخوانی می شود.
// called when response HTTP status is "4XX" (eg. 401, 403, 404)
}
@Override
public void onRetry(int retryNo) {
// درصورتی که تکرار درخواست فعال باشد موقع تکرار این تابع فراخوانی میشود.
// called when request is retried
}
});
درخواست post
همانند درخواست get می باشد تنها تفاوت استفاده از متغییر RequestParams می باشد.
RequestParams params = new RequestParams();
params.put("key", "value");
params.put("more", "data");
AsyncHttpClient client = new AsyncHttpClient();
client.post("https://myendpoint.com", params, responseHandler);
ارسال فایل
نمونه کد ارسال فایل به شکل زیر می باشد.
File myFile = new File("/path/to/file.png");
RequestParams params = new RequestParams();
try {
params.put("profile_picture", myFile);
} catch(FileNotFoundException e) {}
AsyncHttpClient client = new AsyncHttpClient();
client.post("https://myendpoint.com", params, responseHandler);
دانلود فایل
نمونه کد دانلود فایل
AsyncHttpClient client = new AsyncHttpClient();
client.get("https://example.com/file.png", new FileAsyncHttpResponseHandler(/* Context */ this) {
@Override
public void onSuccess(int statusCode, Header[] headers, File response) {
// Do something with the file `response`
}
});
نمونه کد های زیادی برای این کتابخانه می باشد. آموزش های عملی کامل بزودی تهیه و به اشتراک گذاشته خواهد شد.