PDA

View Full Version : روش های انلود برای parse کردن xml



ebrahim12
دوشنبه 17 تیر 1392, 15:32 عصر
درود بر همه دوستان :D

میخواستم یه xml رو parse کنم ... با موفقیت انجام شد ...
اما مشکل برنامه من اینه که نمیشه دو باز یا بیشتر باهاش این کارو انجام داد


روی وب من یه api دارم که خروجی اون xml هستش
اول میخوام بدونم user و pass درست هست یا نه ... برای این کار xml مخصوص اون رو دانلود میکنم

private InputStream downloadUrl(String urlString) throws IOException {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
String encoded;
EditText user = (EditText) findViewById(R.id.editText1);
EditText pass = (EditText) findViewById(R.id.editText2);
userss = user.getText().toString();
passss = pass.getText().toString();
encoded = "Basic " + Base64.encodeToString((userss.toString() + ":" + passss.toString()).getBytes(), 0);
conn.setRequestProperty("Authorization", encoded);
conn.setReadTimeout(10000 );
conn.setConnectTimeout(15000 );
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
return stream;
}

همین طور که میبینید از Authorization هم استفاده شده

حالا با parse کردن میخوام ببینم که user و pass درسته یا نه ... که اونم بلدم ...

حالا اگر درست باشه دو راه دارم :
۱. یه intent بزنمو یه کلاس جدید باز کنم
۲. تو همین کلاس contentView رو عوض کنم

هر دو تا کارو کردم ...
بعد باید یک لیست xml رو دانلود میکردم و نشون میدادم
حالا تو هر دو اگر این function رو بنویسم و صدا بزنم از برنامه خارج میشه (:|) :

private InputStream downloadUrl2(String urlString) throws IOException {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
String encoded;
// userss و passs رو بین دو کلاس جابجا کردم
encoded = "Basic " + Base64.encodeToString((userss.toString() + ":" + passss.toString()).getBytes(), 0);
conn.setRequestProperty("Authorization", encoded);
conn.setReadTimeout(10000 );
conn.setConnectTimeout(15000 );
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
InputStream stream = conn.getInputStream();
return stream;
}

دقت کنید که از AsyncTask هم استفاده میکنم


کسی هست بدونه چرا اینطور میشه ؟؟
یا راهی بده که این کارو برایم انجام بده

(نکته اگر راهی دیگه ای بلدین لطفا خروجیش قابل تبدیل به string یا InputStream باشه)

ebrahim12
چهارشنبه 19 تیر 1392, 16:39 عصر
واقعا کسی نیست جواب بده ؟؟؟ :|