笔记15--get/post提交数据到服务器

来源:互联网 发布:c语言数组指针 编辑:程序博客网 时间:2024/06/05 03:11

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)访问网络,获取服务器的返回内容

此框架还解决了中文乱码问题。


0 0