1、两种方式提交数据的区别:
GET:组拼url的方式,提交数据到服务器。url有长度限制,最长不超过4k。
直接获取状态码。
POST:浏览器把数据写给服务器,通过流的方式。conn.setDoOutput(true):告诉url的connection是否允许往外面写数据。
conn.getOutputStream():得到一个输出流。
os.write():往输出流写数据。
最后获取返回状态码:conn.getResponseCode()
2、乱码问题:服务器显示乱码时需在客户端设置编码方式:GET拼接时参数采用此种方式:URLEncoder.encode(username, "UTF-8");POST也需这样使用。客户端显示乱码时需在服务器端设置编码方式。
3、HttpClient
get方式:
1)打开一个浏览器
HttpClient client=new DefaultHttpClient();
2)输入地址
String path="http://***"+URLEncoder.encode(username)+"&password="+URLEncoder.encode(password);
HttpGet httpGet=new HttpGet(path);
3)敲回车
HttpResponse response=client.execute(httpGet);
int code=response.getStatusLine().getStatusCode();然后判断code值
post方式:
1)打开一个浏览器
HttpClient client=new DefaultHttpClient();
2)输入地址
String path="http://***";
HttpPost httpPost=new HttpPost(path);
//指定要提交的数据实体
List<NameValuePair> parameters=new ArrayList<NameValuePair>();
parameters.add(new BasicNameValuePair("useranme", username));
parameters.add(new BasicNameValuePair("password", password));
httpPost.setEnity(new UrlEncodeFormEntity(parameters, "UTF-8"));
3)敲回车
HttpResponse response=client.execute(httpPost);
int code=response.getStatusLine().getStatusCode();然后判断code值
异步http框架的作用:包装了一些api,当得到服务器返回内容时,如何操作这些内容。
若用默认的http请求,则需3步:)开启子线程,访问网络。2)子线程发送消息,通知ui更新,同时获取服务器的返回内容。3)ui捕获消息。
而在异步http中只用:1)访问网络,获取服务器的返回内容
此框架还解决了中文乱码问题。