View Full Version : سوال در مورد گرفتن یک متن داخل فایل txt از لینک
Sir-Programmer
یک شنبه 19 مهر 1394, 18:45 عصر
با سلام میخوام فایل متنی که روی اینترنت آپلود کردم رو بگیرم و در برنامه نمایش بدم باید چیکار کنم خیلی گفتم کدها ایراد داشت ممنون میشم جواب بدین
pbm_soy
یک شنبه 19 مهر 1394, 21:00 عصر
با کد زیر میتوانید اینکار را انجام دهید
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet("http://www.vogella.com");
HttpResponse response = client.execute(request);
// Get the response
BufferedReader rd = new BufferedReader
(new InputStreamReader(response.getEntity().getContent( )));
String line = "";
while ((line = rd.readLine()) != null) {
textView.append(line);
}
در کد فوق در بخش آدرس وب اون سایت آدرس خودتان را بگذارید مانند http://www.test.com/file.txt
در ضمن حتما این کد را توسط یک ترد مجزا اجرا کنید و یا توسط asynctask درغیراینصورت خطا خواهد گرت
Sir-Programmer
دوشنبه 20 مهر 1394, 10:51 صبح
عاقا این واسه من ارور میشه خواهشا کسی نیست یه قطعه کد تست شده بزاره ؟؟؟؟؟ مممنون میشم خیلی کارم گیره
Sir-Programmer
دوشنبه 20 مهر 1394, 11:18 صبح
سلام دوباره اینو پیدا کردم جواب میده
private class GetStringFromUrl extends AsyncTask<String, Void, String> {
ProgressDialog dialog ;
@Override
protected void onPreExecute() {
super.onPreExecute();
// show progress dialog when downloading
dialog = ProgressDialog.show(Main.this, null, "Downloading...");
}
@Override
protected String doInBackground(String... params) {
// @BadSkillz codes with same changes
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(params[0]);
HttpResponse response = httpClient.execute(httpGet);
HttpEntity entity = response.getEntity();
BufferedHttpEntity buf = new BufferedHttpEntity(entity);
InputStream is = buf.getContent();
BufferedReader r = new BufferedReader(new InputStreamReader(is));
StringBuilder total = new StringBuilder();
String line;
while ((line = r.readLine()) != null) {
total.append(line + "\n");
}
String result = total.toString();
Log.i("Get URL", "Downloaded string: " + result);
return result;
} catch (Exception e) {
Log.e("Get Url", "Error in downloading: " + e.toString());
}
return null;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
// TODO change text view id for yourself
TextView textView = (TextView) findViewById(R.id.textView1);
// show result in textView
if (result == null) {
textView.setText("Error in downloading. Please try again.");
} else {
textView.setText(result);
}
// close progresses dialog
dialog.dismiss();
}
}
برای استفاده باید از کد زیر استفاده کنیم
new GetStringFromUrl().execute("http://www.google.com/");
حالا میخوام این متنی که میگیره رو درون یه متغییر استرینگ بزارم باید چیکار کنم ؟؟؟
pbm_soy
دوشنبه 20 مهر 1394, 12:02 عصر
خوب دوست عزیز منم همین کدی که شما نوشتید را گذاشتم دیگه! ودر ضمن اون کد را من تو چندین برنامه استفاده کردم مشکلی نداشت
فقط در آخر پست گفتم که در یک ترد مجزا بنویسیدش و یا در asyntask بنویسید در نمونه کد شما همان کدی که من گذاشتم را در asynctask گذاشته
در کد شما متد onpostexecution را توجه کنید در آن نتیجه یا همان محتوای صفحه مورد نظر در متغییر رشته ای result قرار دارد و در آخر کد آنرا در یک textview نمایش داده حالا سوال شما چیست؟!
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.