Back to project page AndroidHttpClient3.
The source code is released under:
MIT License
If you think the Android project AndroidHttpClient3 listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.
package com.example.androidhttpclient; /*from w w w . j a v a 2 s.c om*/ import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.Properties; import javax.xml.parsers.DocumentBuilder; import javax.xml.parsers.DocumentBuilderFactory; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.util.EntityUtils; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.nodes.Element; import org.jsoup.select.Elements; import org.xmlpull.v1.XmlSerializer; import com.entity.Course; import com.xmlReader.DomXMLReader; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.util.Log; import android.util.Xml; import android.view.Menu; import android.view.View; import android.view.Window; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class MainActivity extends Activity { String userid = ""; String userpassword = ""; TextView mTextView; TextView currentUserTextView; Button listButton; Button updateButton; Button logoutButton; private Handler mHandler = new Handler() { public void handleMessage(Message msg) { String result = (String) msg.obj; mTextView.setText(result); if (result.equals("success!")) { if (saveUser()) { currentUserTextView.setText("currentUser:" + userid); } else { mTextView.setText("ERROR:User did not be saved!"); } } } }; private BroadcastReceiver broadcastReceiverRef = new BroadcastReceiver() { @Override public void onReceive(Context arg0, Intent arg1) { // TODO Auto-generated method stub if (arg1.getAction().equals("login")) { userid = arg1.getStringExtra("userid"); userpassword = arg1.getStringExtra("userpassword"); mTextView.setText("DOWNLOADING......"); new Thread(new SubThread()).start(); } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); requestWindowFeature(Window.FEATURE_NO_TITLE); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.TextView_HTTP); currentUserTextView = (TextView) findViewById(R.id.currentUserTextView); listButton = (Button) findViewById(R.id.listButton); updateButton = (Button) findViewById(R.id.updateButton); logoutButton = (Button) findViewById(R.id.logoutButton); IntentFilter idRef = new IntentFilter(); idRef.addAction("login"); this.registerReceiver(broadcastReceiverRef, idRef); logoutButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub deleteAllFiles(); } }); updateButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub mTextView.setText("DOWNLOADING......"); if (!userid.equals("")) { new Thread(new SubThread()).start(); } } }); listButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub Intent gotoCourseList = new Intent(); gotoCourseList.setClass(MainActivity.this, CourseListActivity.class); Bundle bundle = new Bundle(); bundle.putString("userid", userid); gotoCourseList.putExtras(bundle); MainActivity.this.startActivity(gotoCourseList); } }); loadUser(); if (userid.equals("")) { LoginDialog loginDialog = new LoginDialog(this); loginDialog.show(); } currentUserTextView.setText("currentUser:" + userid); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public class SubThread implements Runnable { @Override public void run() { // TODO Auto-generated method stub String strResult = ""; String httpUrl = "http://jwc.wyu.edu.cn/student/logon.asp"; HttpPost httpRequest = new HttpPost(httpUrl); httpRequest.setHeader("Referer", "http://jwc.wyu.edu.cn/student/body.htm"); List<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("UserCode", userid)); params.add(new BasicNameValuePair("UserPwd", userpassword)); try { HttpEntity httpentity = new UrlEncodedFormEntity(params, "GBK"); httpRequest.setEntity(httpentity); HttpClient httpclient = new DefaultHttpClient(); HttpResponse httpResponse = httpclient.execute(httpRequest); Log.d(EntityUtils.toString(httpResponse.getEntity(), "GBK"), "fuckschool"); String httpTableUrl = "http://jwc.wyu.edu.cn/student/f3.asp"; HttpGet httpGetRequest = new HttpGet(httpTableUrl); httpGetRequest.addHeader("Referer", "http://jwc.wyu.edu.cn/student/"); //httpGetRequest.setHeader("Referer", "http://jwc.wyu.edu.cn/student/menu.asp"); httpResponse = httpclient.execute(httpGetRequest); if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { strResult = EntityUtils.toString(httpResponse.getEntity(), "GBK"); } else { strResult = "????"; } } catch (ClientProtocolException e) { // TODO: handle exception strResult = e.getMessage().toString(); } catch (IOException e) { strResult = e.getMessage().toString(); } catch (Exception e) { strResult = e.getMessage().toString(); } Document doc = Jsoup.parse(strResult); Element element = doc.select("table[borderColorLight=#0082cf]") .first(); Element elementbody = null; try { elementbody = element.getElementsByTag("TBODY").first(); } catch (Exception e) { // TODO: handle exception String linkText = "Wrong Information"; Message message = Message.obtain(); message.obj = linkText; mHandler.sendMessage(message); return ; } Elements netCourses = elementbody.getElementsByTag("TR"); netCourses.remove(netCourses.size() - 1); netCourses.remove(0); // ?????????????? List<Course> courses = new ArrayList<Course>(); int i = 1; for (Element netcourse : netCourses) { Course course = new Course(); Elements numCourses = netcourse.getElementsByTag("td"); String strMonday = numCourses.get(1).text(); String strTuesday = numCourses.get(2).text(); String strWednesday = numCourses.get(3).text(); String strThursday = numCourses.get(4).text(); String strFriday = numCourses.get(5).text(); String strSaturday = numCourses.get(6).text(); String strSunday = numCourses.get(7).text(); course.setId(i + ""); course.setMonday(strMonday); course.setTuesday(strTuesday); course.setWednesday(strWednesday); course.setThursday(strThursday); course.setFriday(strFriday); course.setSaturday(strSaturday); course.setSunday(strSunday); i++; course = handlCourse(course); // ??????? courses.add(course); } boolean isWorked = false; try { FileOutputStream outStream = MainActivity.this.openFileOutput( userid + ".xml", Context.MODE_WORLD_WRITEABLE); isWorked = DomXMLReader.saveAsXml(courses, outStream); } catch (Exception e) { // TODO: handle exception } String linkText = "failed!"; if (isWorked) linkText = "success!"; Message message = Message.obtain(); message.obj = linkText; mHandler.sendMessage(message); } } public Course handlCourse(Course netcourse) { String strMonday = netcourse.getMonday(); String strTuesday = netcourse.getTuesday(); String strWednesday = netcourse.getWednesday(); String strThursday = netcourse.getThursday(); String strFriday = netcourse.getFriday(); String strSaturday = netcourse.getSaturday(); String strSunday = netcourse.getSunday(); strMonday = strMonday.replace(" ", "\n\r"); strMonday = strMonday.replace("<br>", "\n\r"); strTuesday = strTuesday.replace(" ", "\n\r"); strTuesday = strTuesday.replace(" ", "\n\r"); strWednesday = strWednesday.replace(" ", "\n\r"); strWednesday = strWednesday.replace(" ", "\n\r"); strThursday = strThursday.replace(" ", "\n\r"); strThursday = strThursday.replace(" ", "\n\r"); strFriday = strFriday.replace(" ", "\n\r"); strFriday = strFriday.replace(" ", "\n\r"); strSaturday = strSaturday.replace(" ", "\n\r"); strSaturday = strSaturday.replace(" ", "\n\r"); strSunday = strSunday.replace(" ", "\n\r"); strSunday = strSunday.replace(" ", "\n\r"); Course course = new Course(); course.setMonday(strMonday); course.setTuesday(strTuesday); course.setWednesday(strWednesday); course.setThursday(strThursday); course.setFriday(strFriday); course.setSaturday(strSaturday); course.setSunday(strSunday); return course; } protected boolean saveUser() { Properties properties = new Properties(); properties.put("userid", userid); properties.put("userpassword", userpassword); try { FileOutputStream stream = this.openFileOutput("user.cfg", Context.MODE_WORLD_WRITEABLE); properties.store(stream, ""); } catch (FileNotFoundException e) { // TODO: handle exception return false; } catch (IOException e) { return false; } return true; } protected void loadUser() { Properties properties = new Properties(); try { FileInputStream stream = this.openFileInput("user.cfg"); properties.load(stream); } catch (FileNotFoundException e) { // TODO: handle exception return; } catch (IOException e) { return; } userid = properties.get("userid").toString(); userpassword = properties.get("userpassword").toString(); } protected void deleteAllFiles() { File userfile = new File(this.getFilesDir() + File.separator + "user.cfg"); if (userfile.exists()) { userfile.delete(); } File coursefile = new File(this.getFilesDir() + File.separator + userid + ".xml"); if (coursefile.exists()) { coursefile.delete(); } System.exit(0); } }