简易JAVA_WEB服务器处理POST请求得到内容

package com.zhao.test;



import java.io.IOException;

import java.io.InputStream;

import java.io.OutputStream;

import java.io.UnsupportedEncodingException;

import java.net.ServerSocket;

import java.net.Socket;

import java.net.URLDecoder;



/**

 * 

 * @author

 * 

 */

public class Sample_IIS {

    public static void main(String[] args) {

        startServer(9000);

    }



    private static void startServer(int port) {

        System.out.println("======>startServer");

        try {

            ServerSocket server = new ServerSocket(port);

            server.setSoTimeout(0);

            Socket socket = null;

            while ((socket = server.accept()) != null) {

                socket.setSoTimeout(2000);

                byte[] buffer = new byte[2048];

                InputStream is = socket.getInputStream();

                int len = is.read(buffer);

                getContent(buffer, len);

                responseText(socket,

                        "{\"cmd\":\"response\",\"inof\":\"success\"}");

                socket.close();

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

        System.out.println("=====>");

    }



    /**

     * 

     * @param pSocket

     * @param content

     */

    private static void responseText(Socket pSocket, String content) {

        StringBuffer buffer = new StringBuffer();

        // buffer.append("HTTP/1.1 200 OK\r\n");

        // buffer.append("Date: Tue, 14 Sep 1999 02:19:57 GMT\r\n");

        // buffer.append("Server: Apache/1.2.6\r\n");

        // buffer.append("Connection: close\r\n");

        // buffer.append("Content-Type: text/html\r\n");

        // buffer.append("\r\n");

        buffer.append(content);

        try {

            OutputStream os = pSocket.getOutputStream();

            os.write(buffer.toString().getBytes());

            os.flush();

            os.close();

        } catch (IOException e) {

            e.printStackTrace();

        }

    }



    /**

     * 得到内容

     * 

     * @param data

     * @param len

     * @return

     */

    private static String getContent(byte[] data, int len) {

        String result = "";

        String content = new String(data, 0, len);

        System.out.println("content: " + content);

        String[] lines = content.split("\r\n");

        String firstStr = lines[0];

        // 判断是POST还是GET

        String method = firstStr.split(" ")[0].toLowerCase();

        System.out.println("method: " + method);

        if ("get".equals(method)) {

            // get

        } else {

            // post

            String line = lines[lines.length - 1];

            int index = line.indexOf("=");

            result = line.substring(index + 1);

            try {



                result = URLDecoder.decode(result, "gbk");

                System.out.println("result: " + result);

            } catch (UnsupportedEncodingException e) {

                e.printStackTrace();

            }

        }

        return result;

    }

}

 

你可能感兴趣的:(web服务器)