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

服务端代码:

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服务接口(二)

HttpServerProvider实现http服务接口(一)的更多相关文章

  1. C# 用SoapUI调试WCF服务接口(WCF中包含用户名密码的验证)

    问题描述: 一般调试wcf程序可以直接建一个单元测试,直接调接口. 但是,这次,我还要测试在接口内的代码中看接收到的用户名密码是否正确,所以,单一的直接调用接口方法行不通, 然后就想办法通过soapU ...

  2. 《连载 | 物联网框架ServerSuperIO教程》- 12.服务接口的开发,以及与云端双向交互

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  3. 使用jMeter测试Solr服务接口

    之前一直用ab做简单的服务接口测试,ab功能强悍,使用简单,但是没有生成专题图和表格等功能,因此,我们决定使用jmeter来作为我们测试工具.接下来,我们将详细介绍jmeter使用的步骤,主要包括:j ...

  4. WCF服务接口多,客户端在引用时出错!报WCF The maximum nametable character count quota (16384) has been exceeded while reading XML data错误

    WCF服务接口多,客户端在引用时出错!报WCF The maximum nametable character count quota (16384) has been exceeded while ...

  5. 服务接口API限流 Rate Limit 续

    一.前言 上一篇文章中粗浅的介绍使用Redis和基于令牌桶算法进行对服务接口API限流,本文介绍另一种算法---漏桶算法的应用.Nginx想必大家都有所了解是一个高性能的 HTTP 和反向代理服务器, ...

  6. 服务接口API限流 Rate Limit

    一.场景描述 很多做服务接口的人或多或少的遇到这样的场景,由于业务应用系统的负载能力有限,为了防止非预期的请求对系统压力过大而拖垮业务应用系统. 也就是面对大流量时,如何进行流量控制? 服务接口的流量 ...

  7. Web Service 一些对外公开的网络服务接口

    商业和贸易: 1.股票行情数据 WEB 服务(支持香港.深圳.上海基金.债券和股票:支持多股票同时查询) Endpoint: http://webservice.webxml.com.cn/WebSe ...

  8. Slickflow.NET 开源工作流引擎基础介绍(一) -- 引擎基本服务接口API介绍

    1. 工作流术语图示                                              图1 流程图形的BPMN图形元素表示 1) 流程模型定义说明流程(Process):是企 ...

  9. .Net 与 Java 的服务接口相互调用

    本文介绍.Net 与 Java 相互调用的例子.下面的介绍主要包括三方面:一是通过常用Web服务进行相互调用,二是使用TCP/IP套接字进行相互调用,三是使用Remote实现远程对象相互调用. 首先说 ...

随机推荐

  1. centos6.5环境基于conga的web图形化界面方式配置rhcs集群

    一.简介 RHCS 即 RedHat Cluster Suite ,中文意思即红帽集群套件.红帽集群套件(RedHat Cluter Suite, RHCS)是一套综合的软件组件,可以通过在部署时采用 ...

  2. java模拟form上传数据

    Java模拟form表单上传 查看form表单提交的http请求为 import java.io.*; import java.net.*; public class FileUpload { /** ...

  3. Windows下安装并启动mongodb

    一.Windows下mongodb的安装 MongoDB 提供了可用于 32 位和 64 位系统的预编译二进制包,你可以从MongoDB官网下载安装,MongoDB 预编译二进制包下载地址:https ...

  4. 深度学习Bible学习笔记:第七章 深度学习中的正则化

    一.正则化介绍 问题:为什么要正则化? NFL(没有免费的午餐)定理: 没有一种ML算法总是比别的好 好算法和坏算法的期望值相同,甚至最优算法跟随机猜测一样 前提:所有问题等概率出现且同等重要 实际并 ...

  5. ECLIPSE 导入外部文件或源码包

    步骤: 点击Project->Properties->Libraries->Add External Class Folder.. ->选择你的文件路径->确定 注:如果 ...

  6. pytest七:assert断言

    断言是写自动化测试基本最重要的一步,一个用例没有断言,就失去了自动化测试的意义了.什么是断言呢?简单来讲就是实际结果和期望结果去对比,符合预期那就测试 pass,不符合预期那就测试 failed py ...

  7. 步步为营-58-SQLite的使用

    说明:文档型关系数据库,多用于移动端 1.1 添加引用 ` 1.1.1 System.Data.SQLite.xml 1.1.2 System.Data.SQLite.dll 1.2 连接字符串的设置 ...

  8. 内连接,外链接(左连接、右连接、全连接),交叉连接大总结+附SQL JOINS图解[转]

    1.什么是连接查询呢? 概念:根据两个表或多个表的列之间的关系,从这些表中查询数据. 目的:实现多个表查询操作. 2.分类: 首先划分一下,连接分为三种:内连接.外连接.交叉连接 内连接(INNER ...

  9. Json的简单使用

    1>:推荐JSON学习的网址:http://www.w3school.com.cn/json/index.asp 2>:JSON: JavaScript 对象表示法(JavaScript ...

  10. tarjan 算法求强连通分量

    #include<bits/stdc++.h> #define ll long long using namespace std; const int P=1e6; ; ; const i ...