网络编程(二):http的get和post协议向服务器提交数据

本文详细探讨了网络编程中如何通过HTTP的GET和POST协议向服务器提交数据,包括GET和POST的优缺点以及中文乱码问题的解决。同时,介绍了使用HttpClient和Asynchttpclient这两个开源框架进行网络请求的方法,特别是Asynchttpclient的文件上传功能。此外,文章还深入讲解了多线程断点下载的原理,并提供了Android环境下多线程下载的移植实践。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过网络提交数据到服务器

使用get和post向服务器提交数据、多线程断点下载

http的get和post协议向服务器提交数据


1 使用GET方式向服务器端提交数据

  • 原理:把要提交是数据组拼到Url后面
  • 缺点:不安全
  • 优点:代码书写简单

2 使用POST方式向服务器端提交数据

  • 缺点:代码书写复杂
  • 优点:安全

    /**
     * 1. 在子线程中进行网络通讯 
     * 2. 把流转成字符串 
     * 3. 用土司把服务器返回的结果弹出(handler)
     */
    public void login(View v) {
        qq = etQQ.getText().toString().trim();
        pwd = etPwd.getText().toString().trim();
    
        // 开启子线程
        new Thread() {
            public void run() {
                try {
                    //(1)请求的Url不一样
                    String path = "http://192.168.3.100:8080/web/LoginServlet";
                    // 1. 写一个Url
                    URL url = new URL(path);
                    // 2. 打开连接
                    HttpURLConnection conn = (HttpURLConnection) url
                            .openConnection();
                    // 3. 设置请求方式
                    //(2)请求方法不一样
                    conn.setRequestMethod("POST");
                    conn.setConnectTimeout(3000);
                    //(3)多了两个请求头
                    String data = "qq="+qq+"&pwd="+pwd;
                    conn.setRequestProperty("Content-Length", String.valueOf(data.length()));
                    conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                    //(4)以二进制流的方式把数据写到服务器
                    //重要,声明要给服务器写数据
                    conn.setDoOutput(true);
                    conn.getOutputStream().write(data.getBytes());
                    // 4. 获取状态吗
                    int code = conn.getResponseCode();
                    if (code == 200) {
                        // 5. 获取服务器返回的输入流
                        InputStream is = con
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值