• HttpServerProvider实现http服务接口(一)


    啥也不说了,直接上代码,简单的示例。

    服务端代码:

    package dyan.server;
    
    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.io.OutputStream;
    import java.net.InetSocketAddress;
    
    import com.sun.net.httpserver.HttpExchange;
    import com.sun.net.httpserver.HttpHandler;
    import com.sun.net.httpserver.HttpServer;
    import com.sun.net.httpserver.spi.HttpServerProvider;
    
    
    public class DealMain
    {
        
        public static void main(String[] args) throws Exception
        {
            HttpServerProvider provider = HttpServerProvider.provider();
            
            HttpServer server = provider.createHttpServer(new InetSocketAddress(6688), 10);
            
            server.createContext("/dyan", new DealMain().new DyanHttpHandler());
            
            server.setExecutor(null);
            server.start();
            
        }
        
        
        class DyanHttpHandler implements HttpHandler
        {
    
            @Override
            public void handle(HttpExchange arg0) throws IOException
            {
                System.out.println("accept an exchange from internet.....");
                
                String resp = "your request message i get it!";
                
                BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(arg0.getRequestBody()));
                
                System.out.println(bufferedReader.readLine());
                
                arg0.sendResponseHeaders(200, resp.getBytes().length);
                
                OutputStream out = arg0.getResponseBody();
                out.write(resp.getBytes());
                
                out.flush();
                arg0.close();
            }
            
        }
        
    }

    请求代码:

     public static void main(String[] args) throws Exception
        {
            URL url = null;
            HttpURLConnection urlConnection = null;
            
            url = new URL("http://localhost:6688/dyan");
            urlConnection = (HttpURLConnection)url.openConnection();
            
            urlConnection.setRequestMethod("POST");
            urlConnection.setDoInput(true);
            urlConnection.setDoOutput(true);
            urlConnection.setUseCaches(false);
            
            System.out.println("begin send parameters....");
            
            urlConnection.getOutputStream().write("i am dyan".getBytes());
            urlConnection.getOutputStream().flush();
            urlConnection.getOutputStream().close();
            
            InputStream in = urlConnection.getInputStream();
            BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(in));
            
            System.out.println(bufferedReader.readLine());
            
            bufferedReader.close();
            
            
            urlConnection.disconnect();
        }

    先执行服务端代码,将服务端启动起来,来接收请求。

    再执行请求代码,发起请求。

    控制台打印信息如下:

      1、请求端

    begin send parameters....
    your request message i get it!

      2、服务端

    accept an exchange from internet.....
    i am dyan

    运行原理见:HttpServerProvider实现http服务接口(二)

  • 相关阅读:
    面试题 08.02. 迷路的机器人(C++)
    URI和URL的区别
    Kali Linux自定义分辨率设置
    CentOS最小化安装后配置NAT网络模式
    CentOS7.5安装及最小安装后联网配置--联网配置
    CentOS7.5安装及最小安装后联网配置--系统安装
    基数排序
    归并排序
    堆排序
    简单选择排序
  • 原文地址:https://www.cnblogs.com/ahudyan-forever/p/6001259.html
Copyright © 2020-2023  润新知