HttpClientGET

来源:互联网 发布:乌鲁木齐网络管制 编辑:程序博客网 时间:2024/06/08 07:37


import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

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 java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

    String url="http://v.juhe.cn/toutiao/index?key=22a108244dbb8d1f49967cd74a0c144d";
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //使用异步获取网络数据
        new MyAsyncTask().execute(url);
    }

    /**
     * 异步
     */
    class MyAsyncTask extends AsyncTask<String,Integer,String>
    {

        /**
         * 请求网络数据的方法
         */
        @Override
        protected String doInBackground(String... strings) {

            //接收从网络上获取的json串
            StringBuffer result=new StringBuffer();
            HttpClient client=new DefaultHttpClient();
            //创建HttpGet  使用GET方法
            HttpGet get=new HttpGet(strings[0]);
            try {
                //发起请求 拿到HttpResponse对象  是服务器返回的数据对象
                HttpResponse httpResponse = client.execute(get);
                int responseCode = httpResponse.getStatusLine().getStatusCode();
                String responseMsg = httpResponse.getStatusLine().getReasonPhrase();

                if(200==responseCode)
                {
                    //得到返回的实体对象
                    HttpEntity entity = httpResponse.getEntity();
                    //得到实体对象的具体内容
                    InputStream inputStream = entity.getContent();
                    BufferedReader reader=new BufferedReader(new InputStreamReader(inputStream));
                    String line=null;
                    while((line=reader.readLine())!=null)
                    {
                        result.append(line);
                    }
                    System.out.println("result================="+result);

                }

            } catch (IOException e) {
                e.printStackTrace();
            }
            return result.toString();
        }

        /**
         * 请求完数据执行的方法
         * @param s
         */
        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            getJson(s);
        }
    }

    /**
     * 解析json串
     * @param s
     */
    private void getJson(String s) {

    }
}