java工程实现http请求接口
java工程实现http请求接口
1.实现代码
package com.home;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
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;
public class Test {
public static void main(String[] args) throws IOException {
HttpServer httpServer = HttpServer.create(new InetSocketAddress(9999), 0);
httpServer.createContext("/test", new TestHandler());
httpServer.start();
}
//接口接收处理器
static class TestHandler implements HttpHandler {
@Override
public void handle(HttpExchange httpExchange) throws IOException {
httpExchange.sendResponseHeaders(200, 0);
//获取请求路径
URI requestURI = httpExchange.getRequestURI();
System.out.println("请求路径为:"+requestURI);
//获取请求体
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());
}
//将字符串编码转为utf-8,防止中文乱码
String a = new String(stringBuffer.toString().getBytes(),"utf-8");
//将字符串用json读取
JSONObject jsonObject = JSON.parseObject(a);
OutputStream responseBody = httpExchange.getResponseBody();
responseBody.write(test(jsonObject));
responseBody.close();
}
private int test(JSONObject jsonObject) {
System.out.println("请求体为:"+jsonObject);
return 1;
}
}
}
2.postman请求
3.请求成功
java工程实现http请求接口相关教程
Java字符串相关的类详解
Java字符串相关的类详解 目录 一.String类 1.初识String 2.String的特性 3.String对象的创建(以Java 8为例) 4.String对象的存储解析 5.String与byte[]、char[]直之间的转换 6.String中常用方法 二.StringBuffer类 1.StringBuffer类概述 2.StringBuffer中常
软件工程UML建模语言
软件工程UML建模语言 文章目录 地址及来源 1.1 Software Concept Software History Software Concept Software Characteristics 该笔记源于中国大学MOOC中张爽老师的《软件工程》。 地址:https://www.icourse163.org/course/NEU-1001812013#/info 1.1 Softw
synchronized的实现原理与应用
synchronized的实现原理与应用 文章目录 java对象头 MarkWord 锁升级 偏向锁 轻量级锁 锁优化 锁的优缺点对比 MarkWord 这部分主要用来存储对象自身的运行时数据,如hashcode、gc分代年龄等。mark word的位长度为JVM的一个Word大小,也就是说32位JVM的Mark w
两个有序链表合并为一个有序链表(Java实现)
两个有序链表合并为一个有序链表(Java实现) 解题思路: 以升序为例 第一步当然是判空 如果其中一个链表为空 则返回另一个链表即可 要有序 所以需要比较结点大小 创建两个引用指向两个链表 同时分别创建将要合成链表的头和尾 比较两个结点的大小 将较小的结
Redis的主从复制实现原理
Redis的主从复制实现原理 文章目录 Redis的主从复制 旧版的复制实现 新版的复制实现 部分重同步 1.复制偏移量 2.复制积压缓冲区 3.服务器运行ID psync 复制的实现 1. 步骤一:设置主服务器的地址和端口 2. 步骤二:建立套接字连接 3. 步骤三:发送PING命令 4.
《Head First Java》20201001读书笔记
《Head First Java》20201001读书笔记 P258-P265 对象的生命周期要看引用变量的生命周期。 public class TestLifeOne{public void read(){int a = 42;//s的范围只限于read()里面,到处无法使用sleep();}public void sleep(){s = 7;//非法使用}} 局部变量只会
QT tcp服务端一对多,实现给多个客户端发送文件
QT tcp服务端一对多,实现给多个客户端发送文件 用途:本来是用于给单片机收发消息的,只做了服务端,客户端是用别的网络调试助手测试。 展示 *不想看我逼逼的,源代码在这里:*链接:https://pan.baidu.com/s/1CEXj6wTF2UMn8GjrI0JBvA 提取码:bogl 一、实现
剑指offer0.3数组中重复的数字(python实现)
剑指offer0.3数组中重复的数字(python实现) 找出数组中重复的数字。 在一个长度为 n 的数组 nums 里的所有数字都在 0~n-1 的范围内。数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次。请找出数组中任意一个重复的数字。 示