HttpURLConnection的get请求

首先需要获取HttpURLConnection的实例,需要new出一个URL对象,并传入目标网址,然后调用openConnection()方法即可如下所示:

URL url = new URL("http://www.baidu.com"); 
HttpURLConnection connection = (HttpURLConnection)url.openConnection();

得到HttpURLConnection实例后,一般只需要new出一个URL对象,并且传入目标网络的的地址,然后调用openConnection方法就可以了。然后设置请求方法,连接超时,读取超时以及请求头等

//设置请求参数
mHttpURLConnection.setRequestMethod("GET");
//设置连接超时时间
mHttpURLConnection.setConnectTimeout(15000);
//设置读取超时时间
mHttpURLConnection.setReadTimeout(15000);
//添加请求头
mHttpURLConnection.setRequestProperty("Connection","keep-alive");

然后使用getInputStream方法获取服务器返回的输入流,接着在读取输入流,读取完毕后使用disconnect方法将HTTP连接关闭

/获取服务器返回的输入流
InputStream inputStream = mHttpURLConnection.getInputStream();
//读取输入流s
read = new BufferedReader(new InputStreamReader(inputStream));

完整代码如下:

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        HttpURLConnection mHttpURLConnection = null;
                        BufferedReader read = null;
                        try {
                            URL url = new URL("https://www.baidu.com");
                            mHttpURLConnection = (HttpURLConnection) url.openConnection();
                            //设置请求参数
                            mHttpURLConnection.setRequestMethod("GET");
                            //设置连接超时时间s
                            mHttpURLConnection.setConnectTimeout(15000);
                            //设置读取超时时间
                            mHttpURLConnection.setReadTimeout(15000);
                            //添加请求头
                            mHttpURLConnection.setRequestProperty("Connection","keep-alive");
                            //获取服务器返回的输入流
                            InputStream inputStream = mHttpURLConnection.getInputStream();
                            //读取输入流s
                            read = new BufferedReader(new InputStreamReader(inputStream));
                            StringBuilder respose = new StringBuilder();
                            String line;
                            while((line = read.readLine())!=null){
                                respose.append(line);
                            }
                            Log.d("TAG",respose.toString());
                        } catch (Exception e) {
                            e.printStackTrace();
                        }finally {
                            if(read!=null){
                                try {
                                    read.close();
                                } catch (IOException e) {
                                    e.printStackTrace();
                                }
                            }
                            if(mHttpURLConnection!=null){
                                //请求结束后关闭HTTP链接
                                mHttpURLConnection.disconnect();
                            }
                        }
                    }
                }).start();
            }
        });
    }
}

你可能感兴趣的:(网络)