缃戠粶璇锋眰妗嗘灦-HttpClient鐨刧et,post鍜屽浘鐗囦笂浼犳湇鍔″櫒
HttpClient鏄疉pache Jakarta Common涓嬬殑瀛愰」鐩紝鐢ㄦ潵鎻愪緵楂樻晥鐨勩€佹渶鏂扮殑銆佸姛鑳戒赴瀵岀殑鏀寔HTTP鍗忚鐨勫鎴风缂栫▼宸ュ叿鍖咃紝骞朵笖瀹冩敮鎸丠TTP鍗忚鏈€鏂扮殑鐗堟湰鍜屽缓璁€侶ttpClient宸茬粡搴旂敤鍦ㄥ緢澶氱殑椤圭洰涓紝姣斿Apache Jakarta涓婂緢钁楀悕鐨勫彟澶栦袱涓紑婧愰」鐩瓹actus鍜孒TMLUnit閮戒娇鐢ㄤ簡HttpClient銆?/span>
HttpClient:鏄竴涓帴鍙?
鐗规€э細
1. 鍩轰簬鏍囧噯銆佺函鍑€鐨刯ava璇█銆傚疄鐜颁簡Http1.0鍜孒ttp1.1
2. 浠ュ彲鎵╁睍鐨勯潰鍚戝璞$殑缁撴瀯瀹炵幇浜咹ttp鍏ㄩ儴鐨勬柟娉曪紙GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE锛夈€?/span>
3. 鏀寔HTTPS鍗忚銆?/span>
4. 閫氳繃Http浠g悊寤虹珛閫忔槑鐨勮繛鎺ャ€?/span>
5. 鍒╃敤CONNECT鏂规硶閫氳繃Http浠g悊寤虹珛闅ч亾鐨刪ttps杩炴帴銆?/span>
6. Basic, Digest, NTLMv1, NTLMv2, NTLM2 Session, SNPNEGO/Kerberos璁よ瘉鏂规銆?/span>
7. 鎻掍欢寮忕殑鑷畾涔夎璇佹柟妗堛€?/span>
8. 渚挎惡鍙潬鐨勫鎺ュ瓧宸ュ巶浣垮畠鏇村鏄撶殑浣跨敤绗笁鏂硅В鍐虫柟妗堛€?/span>
9. 杩炴帴绠$悊鍣ㄦ敮鎸佸绾跨▼搴旂敤銆傛敮鎸佽缃渶澶ц繛鎺ユ暟锛屽悓鏃舵敮鎸佽缃瘡涓富鏈虹殑鏈€澶ц繛鎺ユ暟锛屽彂鐜板苟鍏抽棴杩囨湡鐨勮繛鎺ャ€?/span>
10. 鑷姩澶勭悊Set-Cookie涓殑Cookie銆?/span>
11. 鎻掍欢寮忕殑鑷畾涔塁ookie绛栫暐銆?/span>
12. Request鐨勮緭鍑烘祦鍙互閬垮厤娴佷腑鍐呭鐩存帴缂撳啿鍒皊ocket鏈嶅姟鍣ㄣ€?/span>
13. Response鐨勮緭鍏ユ祦鍙互鏈夋晥鐨勪粠socket鏈嶅姟鍣ㄧ洿鎺ヨ鍙栫浉搴斿唴瀹广€?/span>
14. 鍦╤ttp1.0鍜宧ttp1.1涓埄鐢↘eepAlive淇濇寔鎸佷箙杩炴帴銆?/span>
15. 鐩存帴鑾峰彇鏈嶅姟鍣ㄥ彂閫佺殑response code鍜?headers銆?/span>
16. 璁剧疆杩炴帴瓒呮椂鐨勮兘鍔涖€?/span>
17. 瀹為獙鎬х殑鏀寔http1.1 response caching銆?/span>
18. 婧愪唬鐮佸熀浜嶢pache License 鍙厤璐硅幏鍙栥€?/span>
妗堜緥鏁堟灉鍥撅細
MainActivity.java
聽
public class MainActivity extends Activity implements OnClickListener { public static String urls = "http://gpj.zhangwoo.cn/app.php?platform=android&appkey=5a379b5eed8aaae531df5f60b12100cfb6dff2c1"; private TextView mTextView; private ImageView imagegvoew; String resultStr = ""; String resultStr1 = ""; private Bitmap mBitmap = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initView(); } private void initView() { findViewById(R.id.btn1).setOnClickListener(this); findViewById(R.id.btn2).setOnClickListener(this); findViewById(R.id.btn3).setOnClickListener(this); findViewById(R.id.btn4).setOnClickListener(this); mTextView = (TextView) findViewById(R.id.Text); imagegvoew = (ImageView) findViewById(R.id.imagegvoew); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.btn1: Thread visitBaiduThread = new Thread(new VisitWebRunnable()); visitBaiduThread.start(); try { visitBaiduThread.join(); if (!resultStr.equals("")) { mTextView.setText(resultStr); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.btn2: Thread visitBaiduThreads = new Thread(new VisitWebRunnables()); visitBaiduThreads.start(); try { visitBaiduThreads.join(); if (!resultStr1.equals("")) { mTextView.setText(resultStr1); } } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } break; case R.id.btn3: new DownImgAsyncTask() .execute("http://avatar.****.net/8/6/0/2_dickyqie.jpg"); break; case R.id.btn4: //Util.addFile("url");//鍥剧墖璺緞 break; default: break; } } /** 杩欓噷閲嶅啓handleMessage鏂规硶锛屾帴鍙楀埌瀛愮嚎绋嬫暟鎹悗鏇存柊UI **/ private Handler handler = new Handler() { @Override public void handleMessage(Message msg) { switch (msg.what) { case 1: // 鍏抽棴 imagegvoew.setImageBitmap(mBitmap); break; } } }; class DownImgAsyncTask extends AsyncTask<String, Void, Bitmap> { @Override protected void onPreExecute() { // TODO Auto-generated method stub super.onPreExecute(); } @Override protected Bitmap doInBackground(String... params) { // TODO Auto-generated method stub Bitmap b = Util.getImageBitmap(params[0]); return b; } @Override protected void onPostExecute(Bitmap result) { // TODO Auto-generated method stub super.onPostExecute(result); if (result != null) { imagegvoew.setImageBitmap(result); } } } /*** * get * * @author zq * */ class VisitWebRunnable implements Runnable { @Override public void run() { // TODO Auto-generated method stub HttpClient httpCLient = new DefaultHttpClient(); // 鍒涘缓get璇锋眰瀹炰緥 HttpGet httpget = new HttpGet("http://www.baidu.com"); try { HttpResponse response = httpCLient.execute(httpget); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { String result = EntityUtils.toString(response.getEntity(), "UTF-8"); resultStr = result; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } /*** * Post * * @author zq * */ class VisitWebRunnables implements Runnable { @Override public void run() { // TODO Auto-generated method stub List<NameValuePair> formparams = new ArrayList<NameValuePair>(); formparams.add(new BasicNameValuePair("c", "member")); formparams.add(new BasicNameValuePair("a", "getdepartments")); HttpClient client = null; HttpPost request = null; try { client = new DefaultHttpClient(); request = new HttpPost(urls); request.setEntity(new UrlEncodedFormEntity(formparams, HTTP.UTF_8)); HttpResponse response = client.execute(request); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { String result = EntityUtils.toString(response.getEntity(), "UTF-8"); System.out.println(result); resultStr1 = result; } } catch (IOException e) { e.printStackTrace(); } } } }
聽
public class Util { /** * 鍥剧墖鍔犺浇 * * @param url * @return */ public static Bitmap getImageBitmap(String url) { DefaultHttpClient httpclient = new DefaultHttpClient(); HttpGet httpget = new HttpGet(url); try { HttpResponse resp = httpclient.execute(httpget); // 鍒ゆ柇鏄惁姝g‘鎵ц if (HttpStatus.SC_OK == resp.getStatusLine().getStatusCode()) { // 灏嗚繑鍥炲唴瀹硅浆鎹负bitmap HttpEntity entity = resp.getEntity(); InputStream in = entity.getContent(); Bitmap mBitmap = BitmapFactory.decodeStream(in); // 鍚慼andler鍙戦€佹秷鎭紝鎵ц鏄剧ず鍥剧墖鎿嶄綔 return mBitmap; } } catch (Exception e) { } finally { httpclient.getConnectionManager().shutdown(); } return null; } /*** * 涓婁紶鏂囦欢 */ public static void addFile(String url) { CloseableHttpClient httpclient = HttpClients.createDefault(); try { HttpPost httppost = new HttpPost(url); FileBody bin = new FileBody(new File(url)); StringBody comment = new StringBody("A binary file of some kind", ContentType.TEXT_PLAIN); HttpEntity reqEntity = MultipartEntityBuilder.create() .addPart("bin", bin).addPart("comment", comment).build(); httppost.setEntity(reqEntity); System.out .println("executing request " + httppost.getRequestLine()); CloseableHttpResponse response = httpclient.execute(httppost); try { System.out.println(response.getStatusLine()); HttpEntity resEntity = response.getEntity(); if (resEntity != null) { System.out.println("Response content length: " + resEntity.getContentLength()); } } finally { response.close(); } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { try { httpclient.close(); } catch (IOException e) { e.printStackTrace(); } } } }
璁板緱鍔犵綉缁滄潈闄?/span>
聽
<uses-permission android:name="android.permission.INTERNET"/>
聽
瀹屾垚浠ヤ笂鍔熻兘闇€瑕?httpclient.jar,聽 httpcore.jar聽聽 htttpmime.jar 鐐瑰嚮涓嬭浇鍗冲彲
聽
婧愮爜涓嬭浇锛?http://download.****.net/detail/dickyqie/9707202
聽
聽