非JAVAWEB项目提供Http接口调用实现

package httptest;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;

import java.io.*;
import java.net.InetSocketAddress;
import java.net.URI;
import java.util.Map;

public class App {

    public static void main(String[] args) throws IOException {
        HttpServer httpServer = HttpServer.create(new InetSocketAddress(8001), 0);
        httpServer.createContext("/test", new TestHandler());
        httpServer.start();
        System.out.println("8001端口已成功启动");
    }

    static class TestHandler implements HttpHandler {

        @Override
        public void handle(HttpExchange httpExchange) throws IOException {
            //返回
            String rtn="调用成功";
            httpExchange.sendResponseHeaders(200, 0);
            //获取请求路径
            URI requestURI = httpExchange.getRequestURI();
            System.out.println("请求路径为:"+requestURI);
            //获取请求方法
            String requestMethod = httpExchange.getRequestMethod();
            System.out.println("请求方法为:"+requestMethod);
            //获取请求体
            InputStream requestBody = httpExchange.getRequestBody();
            InputStreamReader inputStreamReader = new InputStreamReader(requestBody);
            BufferedReader bufferedReader = new BufferedReader(inputStreamReader);
            StringBuffer stringBuffer = new StringBuffer();
            String s = "";
            while ((s = bufferedReader.readLine()) != null) {
                stringBuffer.append(s.trim());
            }

            System.out.println(stringBuffer);
            //此处引入谷歌Gson框架将String转为Map方便获取参数
            Gson gson = new Gson();
            Map map = gson.fromJson(stringBuffer.toString(), new TypeToken<Map<String, Object>>() {
            }.getType());
            System.out.println("请求参数为:"+map.get("cmd"));
            System.out.println("请求参数为:"+map.get("phone"));
            OutputStream responseBody = httpExchange.getResponseBody();
            responseBody.write(rtn.getBytes());
            responseBody.close();
        }
    }
}

postman模拟调用:
在这里插入图片描述
响应结果为:
postman相应调用成功状态码200
在这里插入图片描述
在这里插入图片描述
注:gsonMaven依赖

<dependency>
  <groupId>com.google.code.gson</groupId>
  <artifactId>gson</artifactId>
  <version>2.2.4</version>
</dependency>
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值