关于httpclient

关于 HttpClient

modle的buil.gradle文件中android根标签下   添加useLibrary 'org.apache.http.legacy'

HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。一般用来网上抓包或者模拟登陆用的 比如:
(1) 使用GET方法抓包
1. 创建 HttpClient 的实例
2. 创建某种连接方法的实例,在这里是GetMethod。在 GetMethod 的构造函数中传入待连接的地址
3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
4. 读 response
5. 释放连接。无论执行方法是否成功,都必须释放连接
6. 对得到后的内容进行处理
根据以上步骤,我们来编写用GET方法来取得某网页内容的代码

/**
 * 1--配置权限
 * 2--配置使用httpclient,在gradle的android标签下配置(  useLibrary 'org.apache.http.legacy')
 * 3--开子线程请求网络
 */
public class MainActivity extends AppCompatActivity {
    public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Log.e("wzq-json","进入onCreate");
        new Thread(new Runnable() {
            @Override
            public void run() {
                try {
                    //httpclient 封装对象
                    DefaultHttpClient defaultHttpClient = new DefaultHttpClient();
                    //封装请求
                    HttpGet httpGet = new HttpGet(urlString);
                    HttpResponse httpResponse = defaultHttpClient.execute(httpGet);
                    // 拿到请求状态码
                    int statusCode = httpResponse.getStatusLine().getStatusCode();
                    if (statusCode == 200) {
                        //enty封装返回数据
                        HttpEntity entity = httpResponse.getEntity();
                        String jsonString = EntityUtils.toString(entity);

                 }


                } catch (IOException e) {
                    e.printStackTrace();
                }

            }
        }).start();


    }
}
 

扫描二维码关注公众号,回复: 6120448 查看本文章

猜你喜欢

转载自blog.csdn.net/weixin_43738523/article/details/85330021