1. 程式人生 > >HttpURLConnection和HttpClient使用

HttpURLConnection和HttpClient使用

package com.bwie.skn.zuoye1;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter
; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import android.widget.Toast; import com.bwie.skn.zuoye1.bean.JsonBean; import com.google.gson.Gson; import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.client.HttpClient
; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection;
import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private List<JsonBean.NewslistBean> list = new ArrayList<>();//建立集合 private ListView lv; private MAdapter mAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); lv = (ListView) findViewById(R.id.lv); mAdapter = new MAdapter(); lv.setAdapter(mAdapter); } public void HttpURLConnection(View view){ //list.clear(); //mAdapter.notifyDataSetChanged(); //mAdapter = new MAdapter(); //lv.setAdapter(mAdapter); new MHttpURLConnectionAsyncTask().execute("https://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); Toast.makeText(MainActivity.this,list.size()+"",Toast.LENGTH_SHORT).show(); } public void HttpClient(View view){ //list.clear(); //mAdapter.notifyDataSetChanged(); //mAdapter = new MAdapter(); //lv.setAdapter(mAdapter); new MHttpClientAsyncTask().execute("http://api.tianapi.com/wxnew/?key=8d6e3228d25298f13af4fc40ce6c9679&num=10"); Toast.makeText(MainActivity.this,list.size()+"",Toast.LENGTH_SHORT).show(); } //介面卡 class MAdapter extends BaseAdapter{ @Override public int getCount() { return list.size(); } @Override public Object getItem(int i) { return list.get(i); } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { ViewHordel vh; if(view==null){ view = View.inflate(MainActivity.this,R.layout.lv_item_layout,null); vh = new ViewHordel(); vh.image=view.findViewById(R.id.image); vh.title=view.findViewById(R.id.title); view.setTag(vh); }else{ vh = (ViewHordel) view.getTag(); } vh.title.setText(list.get(i).getTitle()); new MAsyncTaskImage(vh.image).execute(list.get(i).getPicUrl()); return view; } } class ViewHordel{ ImageView image; TextView title; } //網路獲取圖片 class MAsyncTaskImage extends AsyncTask<String,Void,Bitmap>{ ImageView image; public MAsyncTaskImage(ImageView image) { this.image = image; } @Override protected Bitmap doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); Bitmap bitmap = BitmapFactory.decodeStream(inputStream); return bitmap; } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(Bitmap bitmap) { super.onPostExecute(bitmap); image.setImageBitmap(bitmap); } } //HttpURLConnection獲得資料 class MHttpURLConnectionAsyncTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); int responseCode = urlConnection.getResponseCode(); if (responseCode==200) { InputStream inputStream = urlConnection.getInputStream(); BufferedReader reader= new BufferedReader(new InputStreamReader(inputStream)); StringBuffer buffer = new StringBuffer(); String string=""; while ((string=reader.readLine())!=null){ buffer.append(string); } return buffer.toString(); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(s, JsonBean.class); List<JsonBean.NewslistBean> newslist = jsonBean.getNewslist(); list.addAll(newslist); Log.e("name","name"+list.size()); mAdapter.notifyDataSetChanged(); } } //HttpClient獲得資料 class MHttpClientAsyncTask extends AsyncTask<String,Void,String>{ @Override protected String doInBackground(String... strings) { //1.建立HttpClient HttpClient hc=new DefaultHttpClient(); //2.建立HttpGet物件 HttpGet hg = new HttpGet(strings[0]); //3.執行請求 try { HttpResponse response = hc.execute(hg); //4.得到結果嗎 int code = response.getStatusLine().getStatusCode(); if(code==200){ //5.得到結果資料 HttpEntity result = response.getEntity(); String string = EntityUtils.toString(result); Log.e("TTTTTT",string+"++++++++++++++tttt"); return string; } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Log.e("TTTTTT",s+"++++++++++++++ssss"); Gson gson = new Gson(); JsonBean jsonBean = gson.fromJson(s, JsonBean.class); List<JsonBean.NewslistBean> newslist = jsonBean.getNewslist(); list.addAll(newslist); mAdapter.notifyDataSetChanged(); } } }

相關推薦

Android網路請求操作httpurlconnectionhttpclient基本使用

1.        網路請求操作中Get請求和Post請求有什麼區別? 1)        Get是向伺服器發索取資料的一種請求,而Post是向伺服器提交資料的一種請求 2)        Get是獲取資訊,而不是修改資訊,類似資料庫查詢功能一樣,資料不會被修改 3)   

HttpURLConnectionHttpClient使用

package com.bwie.skn.zuoye1; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.AsyncTask; import a

使用 HTTP 協議訪問網路的兩種方式:HttpURLConnection HttpClient

安卓中進行基於HTTP協議的網路訪問 說明: HttpClient (apache開發) HttpURLConnection(google在釋出安卓時在Java基礎上修改得到的) 使用HC(HttpClient)/UC(HttpURLConnect

Android學習筆記----HttpURLConnection HttpClient(已經被廢棄)

/***************************************************************/ 使用 HTTP 協議訪問網路 在 Android 上傳

HttpUrlConnectionHttpClient速度對比

介面測試中要用java傳送http請求,看到常用的框架有HttpUrlConnection和HttpClient,所以寫了一小段程式碼對比一下速度: import java.io.BufferedReader;import java.io.IOException;import java.io.InputSt

關於java程式碼提交HTTP POST請求中文亂碼的解決方法 HttpURLConnectionHttpClient比較使用示例

首先說明下這些只是根據我工作常用經驗的總結,可能不一定完全對,也不一定全面,但卻是最通用的。 JAVA裡HTTP提交方式 httpurlconnection:jdk裡自帶的 httpclient:apache開源專案 resttemplate:spring提供,本質就是封裝了httpclie

HttpURLConnectionHttpClient比較使用示例

1. GET請求與POST請求 HTTP協議是現在Internet上使用得最多、最重要的協議了,越來越多的Java應用程式需要直接通過HTTP協議來訪問網路資源。 在介紹HttpURLConnection前,我們還是再來說一下URL請求最常用的兩種方式:GET請求與POST請求。 GET請求的資料會附在

HttpURLConnectionHttpClient隨筆

stat getent 網絡訪問 淺析 細節 dom b站 word for   目前在工作中遇到的需要各種對接接口的工作,需要用到HTTP的知識,工作完成後想要做一些筆記,本來知識打算把自己寫的代碼粘貼上來就好了,但是偶然發現一篇博文對這些知識的總結非常到位,自認無法寫的

jacksonhttpclient

webservice->xml jackson->json jackson 1.1 Java->Json 1.1.1 ObjectMap 1.1.2 JsonGenerator 1.1.3 @JsonIgnore hibernate中一對多、多對多雙向關聯

HttpURLConnectionH

MainActivity package com.example.day01; import android.graphics.Bitmap; import android.os.Handler; import android.os.Message; import android.s

HttpURLConnectionHttpClient學習

就是 int main head title tac localhost local net 轉載HttpURLConnection與HttpClient淺析 一、HttpURLConnection的使用 import org.slf4j.Logger; import o

rpc原理,httpclient

rpc原理,和httpclient   客戶端(Client),服務的呼叫方。 服務端(Server),真正的服務提供者。 客戶端存根,存放服務端的地址訊息,再將客戶端的請求引數打包成網路訊息,然後通過網路遠端傳送給服務方。 服務端存根,接收客戶端傳送過

HanderHttpURLConnectionGson解析網路資料設定listView

try { URL url=new URL("http://172.17.8.100/movieApi/movie/v1/findHotMovieList?page=1&count=10"); HttpURLCo

使用jsouphttpclient爬資料時隱藏欄位的問題__VIEWSTATE

最近爬取一個.net網站遇到一個隱藏欄位__VIEWSTATE的問題 一開始天真的直接把火狐捕抓到的 __VIEWSTATE中的values設定進去結果一直報500,納悶了好久發現多次請求的__VIEWSTATE的值是不一樣 這下才解決了   public clas

HttpURLConnectionHttpClient 區別及聯絡

httpclient其實在網路程式設計中,基於java的實現,幾乎都包裝了socket的通訊,然後模擬各總各樣的協議,httpclient其實是模擬瀏覽器發起像伺服器的請求 http://blog.csdn.net/zhliro/article/details

呼叫介面的2中方法(connhttpclient

import com.ursa.acf.util.StringUtils; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.apache.http.client.methods.*; import org

springboot~openfeign從此httpClient說再見

在微服務設計裡,服務之間的呼叫是很正常的,通常我們使用httpClient來實現對遠端資源的呼叫,而這種方法需要知識服務的地址,業務介面地址等,而且需要等他開發完成後你才可以去呼叫它,這對於整合開發來說,不是什麼好事 ,產生了A業務與B業務的強依賴性,那麼我們如何進行解耦呢,答案就是openfeign框架,它

網路訪問 URL,HttpURLConnectionHttpClient:

URL 統一資源定位器 url訪問的格式: 網路協議型別(http)+主機ip(localhost或者172.168.20.2(根據具體情況而定)) +埠號(例如8080)+伺服器上的具體資源路徑(myweb/zhuce.html) String path="htt

【Android基礎知識】使用HttpHttpClient上傳檔案

public class UploadThread extends Thread{ private String fileName; private String url; public UploadThread(String fileName,String url){ this.fileName

HTTP BASIC認證,搶先認證介紹 HttpClient 4.1.1 例項

1.HTTP BASIC認證 在HTTP中,基本認證是一種用來允許Web瀏覽器或其他客戶端程式在請求時提供以使用者名稱和口令形式的憑證。在傳送之前,使用者名稱追加一個冒號然後串接上口令。得出的結果字串再用Base64演算法編碼。例如,使用者名稱是Aladdin,口令是ope