简易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; } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。