간이 JAVA_WEB 서버가 POST 요청 내용을 처리합니다.

8153 단어 웹 서버
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
");
// buffer.append("Date: Tue, 14 Sep 1999 02:19:57 GMT\r
");
// buffer.append("Server: Apache/1.2.6\r
");
// buffer.append("Connection: close\r
");
// buffer.append("Content-Type: text/html\r
");
// buffer.append("\r
");
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
"); 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; } }

좋은 웹페이지 즐겨찾기