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

deprecate شدن HttpClient و اجر نشدن کد استاد در اموزش 11

ابراهیم  8 سال پیش  6 سال پیش
+1 0

سلام دوستان در ابتدای بخش 11 اموزش استاد یک ابجکت از کلاس HttpClient می سازند که بنده وقتی در حال پیاده سازی آن کد بودم اروری دریافت کردم مبنی بر اینکه HttpClient دپریکیت شده است.حال چند سوال برای بنده پیش آمده است که ممنون می شوم راهنمایی بفرمایید.

1-اگر از یک کلاس که دپریکیت شده است (یعنی گوگل توصیه می کند که از ان استفاده نکنیم) استفاده کنیم چه مشکلی به وجود می آید؟

2-با سیرچ کردن می توان راه حل سوالی مانند سوال بالا را یافت ولی ایا در خود سایت گوگل قسمتی وجود دارد که کلاس های دپریکیت شده به همراه علت و به همراه جایگزین را یک جا  آورده باشد؟

3-تا انجا که استاد می خواهند مقدار statusLine ریخته شده در یک متغیر از نوع int به نام کد را با استفاده از Log نمایش دهند هم بنده کد ها را مانند استاد وارد کردم ولی ارور می گیرم و برنامه اجرا نمی شود ایا ممکن است دلیل این ارور این باشد که از کلاسی که  deprecate شده است استفاده می کنم؟

ممنون بابت راهنمایی

0 0
کلاسی که deprecate میشود قابل استفاده است. چون اگر بخواهند کلا فاتحه یک کلاس را بخوانند فکر کنه یه شبه اندروید سقوط می کنه به قعر بدبختی چون همه ی برنامه ها کرش می کنن (8 سال پیش)
0 0
در هر صورت در همان ابتدای اموزش یازده که استاد مقدار http status code را می خواهند در Log نشان دهند من ارور دریافت می کنم در یک پروژه ی دیگر هم همین مراحل را طی کردم منتها مجددا ارور دریافت کردم. ممنون می شوم دوستان راهنمایی کنند. (8 سال پیش)
+1 0
شما پروژه استاد رو import کنید ببینید آیا بازم ارور میگرید؟! اگر نگرفتید، بدونید بدون شک یک جای کار رو اشتباه کردید! (8 سال پیش)
0 0
سلام ایمپورت کردم باز هم ارور گرفتم . (8 سال پیش)
+1 0
دوست عزیز این کلاس ها دیگه خیلی قدیمی شده. از okhttp یا retrofit استفاده کن. البته اینا برای rest api هست فک کنم. از volly هم میتونی استفاده کنی فعلا تا راه بیفتی ولی volly هم خیلی عالی نیست (7 سال پیش)
0 0
volley هم فکر کنم deprect شده (7 سال پیش)
+2 0
volly دپریکت شده؟؟؟ نه بابا چه خبره - (7 سال پیش)
+1 0
نخیر volly دپریکیت نشده . توی گیت هاب یه کپی از اون گذاشته بودن که اون دیگه آپدیت نمیشه وگرنه از خود volly میتونید استفاده کنید ولی retrofit هم خیلی عالیه (7 سال پیش)
 برای این سوال 12 پاسخ وجود دارد.
پاسخ به سوال 
ابراهیم  8 سال پیش
0 0

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

0 0
من کد استاد رو هم در اندروید استودیو ایمپورت کردم اما ان هم اجرا نشد (8 سال پیش)
0 0
ابراهیم جان ،من کد استاد رو توی اندروید استودیو ایمپورت میکنم اجرا میشه و مشکل نداره..ولی وقتی خودم تو یه پروژه جدید کدهای استادو کپی میکنم به Http ها گیر میده ،در صورتی که از API8 استفاده میکنم...پیدا نکردی راه حلو؟ (8 سال پیش)
پاسخ به سوال 
ابراهیم  8 سال پیش
0 0

اشکالی که کد استاد را نمی توانستم درست اجرا کنم به دلیل ادرس HttpGet بود بعد از اصلاح اجرا شد .دوستان اگر اطلاعاتی در مورد کلاس جایگزین HttpClient دارند لطفا به بنده هم اطلاع دهند . ممنون

پاسخ به سوال 
amirhossein1376  8 سال پیش
0 0

آقا کلا تو اندروید استودیو میزنم HttpClient هیچی نمیاره راهنمایی کنید اگه چیزی میدونین خیلی برام واجبه

0 0
این مشکل همچنان برای من است.کد استاد را اگر ایمپورت کنم اجرا می شه و لی تنها همین یک کد که دپریکیت شده را وقتی تو اندروید استودیو وارد می کنم موقع ران گرفتن ارور میده . (8 سال پیش)
0 0
واقعا عجیبه (8 سال پیش)
+1 0
نه اصلا عجیب نیست من فک کنم بدونم ارورتون چیه ارور شما مربوط میشه به Main Thread که برای حل اون باید کد استاد رو توی ترد بزاری و ترد رو استارت کنی. اگه مشکلتون حل نشد بگید تا راهنماییتون کنم (8 سال پیش)
0 0
ممنون رامین جان تست می کنم مزاحمت می شم. (8 سال پیش)
0 0
اگه ارور توی log cat رو هم بزاری بهتر میتونم کمکت کنم (8 سال پیش)
پاسخ به سوال 
masih  8 سال پیش
+2 0

سلام مشکله خاصی نیست من هم همین مشکل را داشتم تو اندروید استودیو که کلا کلاس های Http را ایمپورت نمیکرد راه حل اینطوریه:

نسخه appcompact را بیار پایین مشکل حل میشه چون نسخه 23 Http را ساپورت نمیکنه

0 0
من این تغییرو ایجاد کردم درست نشد (8 سال پیش)
0 0
ممنون بابت راهنمایی تست می کنم خبر می دم فقط یک نکته ای شما اطلاعاتی در مورد کلاس جایگزین شده به جای کلاس Http ندارید؟ (8 سال پیش)
پاسخ به سوال 
کاشی زاده  8 سال پیش
+6 0

HttpClient جز پکیج Apache هست و ربطی به گوگل و اندروید نداره ، اما در API 22 اندروید از Apache 4.3 استفاده شده ، که در این ورژن از Apache دیگه از HttpClient پشتیبانی نمیشه و Depricate شده . منبع

حالا طبق چیزی که خود Apache گفته باید از HttpClientBuilder و یا از CloseableHttpClient استفاده کنید .

راه دیگه هم اینکه از نسخه 21 به قبل اندروید رو در پروژه به کار ببرید .

0 0
تشکر بابت راهنمایی (8 سال پیش)
0 0
من نسخه قبل از 21 رو هم بکار گرفتم ولی درست نشد (8 سال پیش)
0 0
اقا اصلا اینارو بیخیال!..یه راهی پیشنهاد بدید که از اندروید استودیو بشه وصل شد به سرور و دیتا بیس و اینا... دمتون گرم :) (8 سال پیش)
0 0
اگه منظورتون این هست که در اپلیکیشن یک دیتابیس انلاین داشته باشیم و اطلاعات از سرور دریافت شود که این موارد در اموزش ها پوشش داده شده. (8 سال پیش)
0 0
میشه اینو یکم بیشتر توضیح بدید با مثال (7 سال پیش)
پاسخ به سوال 
amirhossein1376  8 سال پیش
+3 0

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

دوستان میتونید این خط رو به gradle برنامتون اضافه کنید

dependencies {
...
  compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
}
+1 0
منبع لینک (8 سال پیش)
+1 0
داداش من این کارو کردم ولی فایده نداشت اصلا خیلی مسخره هستش وقتی استاد و اونایی که این مشکلو میدونن حاضر نیستن خیلی راحت و صریح جواب ماها رو بدن (6 سال پیش)
0 0
این کد رو به gradle اضافه کن حتما درست میشه android { useLibrary 'org.apache.http.legacy' } (6 سال پیش)
0 0
در android studio (6 سال پیش)
پاسخ به سوال 
MarAnd  7 سال پیش
0 0

من هم تازه رسیدم به قسمت بازیابی سرور ولی با HTTPClient مشکل دارم . اولش این دستور رو اضافه کردم  =>    'useLibrary 'org.apache.http.legacyولی خطایی که میده از این نوع هست =>  unable to start activity componentinfo و بعدش این دلیل رو میاره =>  Caused by:  android.os.NetworkOnMainThreadException

به همین دلیل یک Thread تعریف کردم و کدها رو توش نوشتم و حالا وقتی اجرا می کنم توی LOG کدی مربوط به HTTP Status Code هست رو بهم عدد 405 نشون میده . چه راه حلی برای رفعش وجود داره ؟ اضافه کردن یه سری دستورات رو توی gradle رو هم امتحان کردم ولی نتیجه نداد. 

پاسخ به سوال 
A  7 سال پیش
+1 0

برای حل این مشکل بعد از setContent در اکتیویتی مورد نظر این کد رو وارد کنید:

 if (android.os.Build.VERSION.SDK_INT > 9) {
StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy);
}
0 0
ممنون ولی بازهم 405 رو نشون میده :( (7 سال پیش)
پاسخ به سوال 
hadighorbani  7 سال پیش
+1 0

سلام یک بار توی یکی از تاپیک ها گفتم الانم میگم دوباره

در نسخه ی Android Studio 1.4 و به بعدش دیگه از متد های Http گوگل پشتیبانی نمیگنه، و شما باید از وبسرویس هایی نظیر Volley استفاده بکنید

برای کانکت شدن به اینترنت از RequestQueue باید استفاده کنید

 

0 0
شما درست میگین ولی خونده بودم که دیپریکیت شدن دلیل بر قابل استفاده نبودن نیست !. (7 سال پیش)
0 0
بله صحیحه اما من دیگه نتونستم با اضافه کردن دپندسیاش ازش استفاده کنم چون کلا اون دنپندسیو نداشت (7 سال پیش)
+1 0
اکی شد مال من ولی سپاسگزارم چون باعث شد با volley هم اشنا بشم . (7 سال پیش)
پاسخ به سوال 
Reza  7 سال پیش
+4 0

این خط رو به gradle اضافه کن ، تو بخش android زیر buildToolsVersion . 

useLibrary 'org.apache.http.legacy'

. بعدشم این چند خط کد رو به ActivityMain پروژت اضافه کن مشکلت حل میشه.

if (android.os.Build.VERSION.SDK_INT > 9) {
    StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
    StrictMode.setThreadPolicy(policy);
}
پاسخ به سوال 
silent scream  7 سال پیش
+1 0

دوستان توجه کنید که دیپرکت شدن یک متد به خاطر مشکلاتی هست که داشته، درسته قابل استفاده هست ولی به هیچ وجه پیشنهاد نمیشه استفاده بشه. 

پاسخ به سوال 
nero 360  6 سال پیش
+1 0

به نظرم از کلاس HttpUrlConnection  برای جایگزین استفاده کنید

0 0
دوست عزیز یه نمونه کد کاملشو قرار میدی؟ (6 سال پیش)

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