码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2014-08-17 00:58:41      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   java   os   io   ar   

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;
    }
}

 

简易JAVA_WEB服务器处理POST请求得到内容,布布扣,bubuko.com

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

标签:style   blog   http   color   java   os   io   ar   

原文地址:http://www.cnblogs.com/afluy/p/3917106.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!