本文主要是介绍《第一行代码-Android》学习笔记(二十二),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一.HttpURLConnection学习
1.new出一个URL对象:
2.利用URL的实例方法:openConnection()获取到URLConnection对象,再向下强制转换为HttpURLConnection对象。
代码:
URL url = new URL("http://www.baidu.com");
connection = (HttpURLConnection) url.openConnection();
//GET表示希望从服务器获取数据,POST表示提交数据给服务器。
connection.setRequestMethod(“GET”);
connection.setConnectTimeout(6000);
connection.setReadTimeout(8000);
InputStream inputStream = connection.getInputStream();
//对获取的流进行包装处理
BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
StringBuffer result = new StringBuffer();
String line = "";
while((line = reader.readLine()) != null){
result.append(line);
}
reader.close();
3.POST请求,如何提交数据:
connection.setRequestMethod("POST");
DataOutputStream outputStream=new DataOutputStream(connection.getOutputStream());
//提交的数据是以键值对的形式存在的,数据与数据之间以&隔开
outputStream.writeBytes("username=admin&password=123456");
二.HttpClient学习
HttpClient是Apache提供的HTTP网络访问接口,可以实现和HttpURLConnection一样的效果,但是二者的用法大不一样。
1.Get请求:
a) 创建一个HttpClient实例,由于HttpClient是一个接口,一般创建一个DefaultHttpClient实例:
HttpClient httpClient = new DefaultHttpClient();
b) GET请求创建一个HttpGet对象,并传入目标网络地址:
HttpGet httpGet = new HttpGet("http://www.baidu.com");
c) 调用HttpClient的execute()方法,获得一个HttpResponse对象:
HttpResponse httpResponse = httpClient.execute(httpGet);
d) 判断返回码是不是200:
if(httpResponse.getStatusLine().getStatusCode() == 200){...}
e) 获取HttpEntity,并获取到里面内容:
HttpEntity httpEntity = httpResponse.getEntity();
//利用EntityUtils的类方法,可以解析httpEntity对象,并设置编码格式
String result = EntityUtils.toString(httpEntity, "utf-8");
2.POST请求:
a) 创建一个HttpClient实例,由于HttpClient是一个接口,一般创建一个DefaultHttpClient实例:
HttpClient httpClient = new DefaultHttpClient();
b) POST请求创建一个HttpPost对象,并传入目标网络地址:
HttpPost httpPost = new HttpPost("http://www.baidu.com");
c) 通过NameValuePair集合来存放待提交的数据,并将集合出入到UrlEncodedFormEntity中,然后调用HttpPost的setEntity()方法将UrlEncodedFormEntity传入:
List<NameValuePair> params = new ArrayList<NameValuePair>();
params.add(new BasicNameValuePair("user", "admin"));
params.add(new BasicNameValuePair("password", "123456"));
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, "utf-8");
httpPost.setEntity(entity);
d) 调用HttpClient的execute()方法,获得一个HttpResponse对象:
httpClient.execute(httpPost);
e) .....下面的处理和get请求相同
这篇关于《第一行代码-Android》学习笔记(二十二)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!