美文网首页
网络编程(4)——使用post方式提交数据和文件

网络编程(4)——使用post方式提交数据和文件

作者: 让时间走12138 | 来源:发表于2020-07-09 12:01 被阅读0次

本节内容

1.常规方式post普通数据

2.底层方式post普通数据

3.文件上传

一、常规方式post普通数据

1.首先创建一个URL对象
URL url= new URL("http://127.0.0.1/login.php");
2.获取链接对象
        HttpURLConnection coon=(HttpURLConnection) url.openConnection();
        coon.setRequestMethod("POST");
        coon.setDoOutput(true);
        coon.setConnectTimeout(5*1000);
3.拼接上传的普通数据
String params ="user_name=jack&user_password=123";
4.获取输出流对象,注意:使用DataOutputStream包裹字节输出流,DataOutputStream是一个平台无关类
OutputStream os= coon.getOutputStream();
 DataOutputStream out=new DataOutputStream(os);
5.将自己的数据写出到输出流中
 out.writeBytes(params);
        out.flush();
        out.close();
6.获取服务器的响应信息
InputStream is =coon.getInputStream();
       DataInputStream in =new DataInputStream(is);
       byte []buffer =new byte[1024];
       int len= in.read(buffer);
      String content= new String(buffer,0,len);
      System.out.println(content);

二、底层方式POST普通数据(按照html上传的数据格式来上传)

//post底层方式提交普通数据
    public static void postData2()throws Exception{
        URL url= new URL("http://127.0.0.1/login.php");
        HttpURLConnection coon =(HttpURLConnection)url.openConnection();
        //设置请求方式为post
        coon.setRequestMethod("POST");
        //打开输出流
        coon.setDoOutput(true);
        //设置请求头部信息
        coon.setRequestProperty("Content-type","multipart/form-data, boundary==AaB03x");
        //发送请求体数据
        OutputStream os = coon.getOutputStream();
        DataOutputStream out = new DataOutputStream(os);

        out.writeBytes("--AaB03x\r\n");
        out.writeBytes("content-disposition: form-data; name=\"user_name\"\r\n");
        out.writeBytes("\r\n");
        out.writeBytes("jack\r\n");
        out.writeBytes("--AaB03x\r\n");
        out.writeBytes("content-disposition: form-data; name=\"user_password\"\r\n");
        out.writeBytes("\r\n");
        out.writeBytes("123\r\n");
        out.writeBytes("--AaB03x--\r\n");
        out.flush();
        out.close();
        //获取服务器的响应信息
        InputStream is =coon.getInputStream();
        DataInputStream in =new DataInputStream(is);
        byte []buffer =new byte[1024];
        int len= in.read(buffer);
        String content= new String(buffer,0,len);
        System.out.println(content);

    }

三、文件上传

public static void postFile() throws Exception{
        URL url= new URL("http://127.0.0.1/upload.php");
        HttpURLConnection coon =(HttpURLConnection)url.openConnection();
        coon.setRequestMethod("POST");
        coon.setDoOutput(true);
        coon.setRequestProperty("Content-type","multipart/form-data, boundary==AaB03x");
        OutputStream os = coon.getOutputStream();
        DataOutputStream out= new DataOutputStream(os);
        out.writeBytes("--AaB03x\r\n");
        out.writeBytes("content-disposition: form-data; name=\"file\";filename=\"abc.jpg\"\r\n");
        out.writeBytes("Content-Type: image/jpg\r\n\r\n");

        //图片的具体内容
        //创建文件的输入流对象
        FileInputStream fis = new FileInputStream("C:\\Users\\86178\\Pictures\\Saved Pictures\\1.jpg");
        BufferedInputStream bis=new BufferedInputStream(fis);
        byte [] buffer =new byte[1024];
        int  len =0;
        while((len=bis.read(buffer))!=-1){
            out.write(buffer,0,len);
        }
        out.writeBytes("\r\n");
        out.writeBytes("--AaB03x--\r\n");
        out.flush();
        out.close();
        bis.close();
        //获取服务器的响应信息
        InputStream is =coon.getInputStream();
        DataInputStream in =new DataInputStream(is);
        len= in.read(buffer);
        String content= new String(buffer,0,len);
        System.out.println(content);

    }

相关文章

  • 网络编程(4)——使用post方式提交数据和文件

    本节内容1.常规方式post普通数据2.底层方式post普通数据3.文件上传 一、常规方式post普通数据1.首先...

  • Python网络数据采集4-POST提交与Cookie的处理

    Python网络数据采集4-POST提交与Cookie的处理 POST提交 之前访问页面都是用的get提交方式,有...

  • UE HTTP协议

    UE4客户端向HTTP服务器请求数据 :采用post方式提交 这里我们http协议的post请求提交方式使用:ap...

  • axios学习笔记

    一、axios的基本使用 get,获取数据 post,提交数据(表单提交以及文件上传) put,更新数据 (提交所...

  • axios 相关知识小记

    axios 1.axios请求方式 get 获取数据 post 提交数据(表单提交 +文件上传) put 更...

  • 文件上传

    常见的文件上传方式 1.表单上传 method="post": 采用post方式提交数据enctype="mult...

  • html表单标签

    本文分享form表单的一些使用方法 post 和 get 方式提交数据的区别: 提交方式区别 GET请求的数据会附...

  • Android 基础day05

    Android基础网络第二天 1 post方式提交数据乱码的解决 2 get方式提交数据乱码解决 3 httpcl...

  • Android基础第五天

    Android基础网络第二天 1 post方式提交数据乱码的解决 2 get方式提交数据乱码解决 3 httpcl...

  • Android向后台发送请求

    1.本篇主要实现用Get和Post提交完成登录案例。2.使用Post提交JSON数据。 代码 使用Get和Post...

网友评论

      本文标题:网络编程(4)——使用post方式提交数据和文件

      本文链接:https://www.haomeiwen.com/subject/wkerohtx.html