zoukankan      html  css  js  c++  java
  • 利用Post方法进行数据提交

    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.HashMap;
    import java.util.Map;
    
    public class HttpUtils {
    
        private static String PATH = "http://169.254.32.172:8080/myhttp/LoginAction";
        private static URL url;
    
        public HttpUtils() {
            // TODO Auto-generated constructor stub
        }
    
        static {
            try {
                url = new URL(PATH);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
    
        /**
         * 
         * @param params
         *            填写的URL的参数
         * @param encode
         *            字节编码
         * @return
         */
        public static String sendPostMessage(Map<String, String> params,
                String encode) {
            // 作为StringBuffer初始化的字符串
            StringBuffer buffer = new StringBuffer();
            // buffer.append("?");
            try {
                if (params != null && !params.isEmpty()) {
                    for (Map.Entry<String, String> entry : params.entrySet()) {
                        buffer.append(entry.getKey())
                                .append("=")
                                .append(URLEncoder.encode(entry.getValue(), encode))
                                .append("&");
                    }
                }
                // 删除掉最后一个&
                // buffer.deleteCharAt(buffer.length()-1);
                System.out.println(buffer.toString());
                HttpURLConnection urlConnection = (HttpURLConnection) url
                        .openConnection();
                urlConnection.setConnectTimeout(3000);
                urlConnection.setRequestMethod("POST");
                urlConnection.setDoInput(true);// 从服务器读数据
                urlConnection.setDoOutput(true);// 向服务器写数据
                // 获得上传信息的字节大小以及长度
                byte[] mydata = buffer.toString().getBytes();
                // 表示设置请求体的类型是文本类型
                urlConnection.setRequestProperty("Content-Type",
                        "application/x-www-form-urlencoded");
                urlConnection.setRequestProperty("Content-Length",
                        String.valueOf(mydata.length));
                // 获得输出流,向服务器输出数据
                OutputStream outputStream = urlConnection.getOutputStream();
                outputStream.write(mydata, 0, mydata.length);
                outputStream.close();
                // 获得服务器响应码
                int responseCode = urlConnection.getResponseCode();
                if (responseCode == 200) {
                    return changeInputStream(urlConnection.getInputStream(), encode);
                }
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return "";
        }
    
        /**
         * 将一个输入流转换成指定编码的字符串
         * 
         * @param inputStream
         * @param encode
         * @return
         */
    
        private static String changeInputStream(InputStream inputStream,
                String encode) {
            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
            byte[] data = new byte[1024];
            int len = 0;
            String result = "";
            if (inputStream != null) {
                try {
                    while ((len = inputStream.read(data)) != -1) {
                        outputStream.write(data, 0, len);
                    }
                    result = new String(outputStream.toByteArray(), encode);
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
            return result;
        }
    
        public static void main(String[] args) {
            Map<String, String> params = new HashMap<String, String>();
            params.put("username", "123");
            params.put("password", "123");
            sendPostMessage(params, "utf-8");
            String result = sendPostMessage(params, "utf-8");
            System.out.println(result);
        }
    }


    servlet部分

    import java.io.IOException;
    import java.io.PrintWriter;
    
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    
    public class LoginAction extends HttpServlet {
    
        /**
         * The doGet method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to get.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doGet(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html");
            PrintWriter out = response.getWriter();
            this.doPost(request, response);
        }
    
        /**
         * The doPost method of the servlet. <br>
         *
         * This method is called when a form has its tag value method equals to post.
         * 
         * @param request the request send by the client to the server
         * @param response the response send by the server to the client
         * @throws ServletException if an error occurred
         * @throws IOException if an error occurred
         */
        public void doPost(HttpServletRequest request, HttpServletResponse response)
                throws ServletException, IOException {
    
            response.setContentType("text/html;charset=utf-8");
            request.setCharacterEncoding("utf-8");
            response.setCharacterEncoding("utf-8");
            PrintWriter out = response.getWriter();
            String username=request.getParameter("username");
            System.out.println(username);
            String password=request.getParameter("password");
            System.out.println(password);
            if(username.equals("123")){
                out.println("Success");
            }else{
                out.print("fail");
            }
            out.flush();
            out.close();
        }
    
    }
  • 相关阅读:
    深度分析:java8的新特性lambda和stream流,看完你学会了吗?
    花了三天整理,Spring Cloud微服务如何设计异常处理机制?还看不懂算我输
    做了两年java,这些高性能高可用高并发的技术架构你都知道吗?
    面试阿里,字节跳动90%会被问到的微服务,你确定不进来看看吗?
    阿里面试官:小伙子,你给我说一下前后端分离的接口规范是什么?
    深度分析:面试阿里,字节跳动,美团几乎都会被问到的阻塞队列
    1. 线性DP 1143. 最长公共子序列
    1. 线性DP 300. 最长上升子序列 (LIS)
    GC 的认识(转) https://github.com/qcrao/Go-Questions/blob/master/GC/GC.md#1-什么是-gc有什么作用
    缓存淘汰算法--LRU算法
  • 原文地址:https://www.cnblogs.com/zyxiaohuihui/p/4533083.html
Copyright © 2011-2022 走看看