HttpClient简单使用之GET请求

来源:互联网 发布:php程序员培训机构 编辑:程序博客网 时间:2024/06/06 08:32

注册清单文件

 <uses-permission android:name="android.permission.INTERNET"/>

流转化工具类

public class StreamTools {    /**     * 流转化成字符串     * @param is     * @return     */    public static String readFromNetWork(InputStream is){        try {            ByteArrayOutputStream baos = new ByteArrayOutputStream();            byte[] buffer = new byte[1024];            int len = 0;            while ((len = is.read(buffer)) != -1){                baos.write(buffer,0,len);            }            return baos.toString();        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}

主页面

public class MainActivity extends AppCompatActivity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }    //HttpClient请求之Get请求    public void btnGetRequest(View v){        new Thread(){            @Override            public void run() {                super.run();                httpClientForGetReqeust();            }        }.start();    }    private void httpClientForGetReqeust(){        try {            //打开浏览器            HttpClient httpClient = new DefaultHttpClient();            //填一下地址            HttpGet httpGet = new HttpGet("http://v.juhe.cn/WNXG/city?key=ed1088c0c4ac34c42a270fabf0de9b5a");            //敲回车            HttpResponse httpResponse = httpClient.execute(httpGet);            //服务器响应            //getStatusLine()  得到状态行对象 getStatusCode  : 状态码对象            int code = httpResponse.getStatusLine().getStatusCode();            //code == 200            if(code == HttpStatus.SC_OK){                //获取服务器数据                InputStream is = httpResponse.getEntity().getContent();                //流转化成String                String json = StreamTools.readFromNetWork(is);                System.out.println("httpclient : "+json);            }        } catch (IOException e) {            e.printStackTrace();        }    }}

Android 6.0 版移除了对 Apache HTTP 客户端的支持。如果您的应用使用该客户端,并以 Android 2.3(API 级别 9)或更高版本为目标平台,请改用 HttpURLConnection 类。此 API 效率更高,因为它可以通过透明压缩和响应缓存减少网络使用,并可最大限度降低耗电量。要继续使用 Apache HTTP API,您必须先在 build.gradle 文件中声明以下编译时依赖项:

android {    //添加httpClient支持    useLibrary 'org.apache.http.legacy'}
1 0