美文网首页
java服务端接收http请求

java服务端接收http请求

作者: 萌萌哒小鼠儿 | 来源:发表于2019-04-15 17:35 被阅读0次

    在开发中我们经常会用到http请求来处理数据,直接使用spring的@Controller,虽然很简单,很好实现,但是对于非spring的项目来说,要配置成sping项目也会耗费一些功夫。
因此可以使用java SE进行简单的配置

package controller;

import com.sun.net.httpserver.Headers;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import org.springframework.stereotype.Service;

import javax.annotation.PostConstruct;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;

@Service
public class TestServer {
    @PostConstruct
    public void initHttpServer() throws IOException {
        HttpServer server = HttpServer.create(new InetSocketAddress(8410), 0);
        server.createContext("/test", new MyHandler());
        server.setExecutor(null); // creates a default executor
        server.start();
    }

    static class MyHandler implements HttpHandler {
        @Override
        public void handle(HttpExchange httpExchange) throws IOException {
            System.out.println("receive");
            String requestMethod = httpExchange.getRequestMethod();
            if (requestMethod.equalsIgnoreCase("GET")) {//客户端的请求是get方法
                //设置服务端响应的编码格式,否则在客户端收到的可能是乱码
                Headers responseHeaders = httpExchange.getResponseHeaders();
                responseHeaders.set("Content-Type", "text/html;charset=utf-8");

                //在这里通过httpExchange获取客户端发送过来的消息
                //URI url = httpExchange.getRequestURI();
                //InputStream requestBody = httpExchange.getRequestBody();

                // 这里获取get请求参数
                // will return string in format similar to this: "field1=value1&field2=value2&field3=value3..."
                String queryParams = httpExchange.getRequestURI().getQuery();
                System.out.println(queryParams);

                String response = "this is server";

                httpExchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, response.getBytes("UTF-8").length);

                try (OutputStream responseBody = httpExchange.getResponseBody();
                         OutputStreamWriter writer = new OutputStreamWriter(responseBody, "UTF-8")) {
                        writer.write(response);
                    }
            }

        }
    }
}

参考
https://blog.csdn.net/qq_29125669/article/details/77873923

相关文章

  • java服务端接收http请求

        在开发中我们经常会用到http请求来处理数据,直接使用spring的@Controller,虽然很简单,很...

  • HTML5布局之路

    Web服务本质 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端...

  • 基本知识

    1、服务器本质 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 --> 服务端...

  • 前端知识之HTML内容

    HTML介绍 Web服务本质 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应 ...

  • HTML基础

    HTML协议简介 Web服务本质浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务端返回响应...

  • 01、前端知识之HTML内容

    [toc] HTML介绍 Web服务本质 浏览器发请求 --> HTTP协议 --> 服务端接收请求 --> 服务...

  • websocket实战与浅入浅出

    websocket与http的区别? Http:请求与响应的模式,属于“半双工”,服务端只能接收客户端的请求做出响...

  • rpc-plus-gateway和rpcx源码数据流分析

    gateway服务流程 监听http服务 接收请求进来之后,创建rpc客户端 rpc客户端请求相应的服务端,取得返...

  • 深入分析JAVA WEB技术内幕(三)

    中文编码 用户发起Http请求时,需要存在编码的地方是URL、Cookie、Parameter。服务端接收到Htt...

  • HTTP参数传递与接收

    基础 软件开发,不同系统之间最常见的数据交互协议是HTTP,客户端【发起请求】并【接收服务端的响应】,服务端【收到...

网友评论

      本文标题:java服务端接收http请求

      本文链接:https://www.haomeiwen.com/subject/ielpwqtx.html