【转-整理】Java 对外接口开发(http)服务端-客户端

java开发接口利用http协议传输数据

这个接口主要用来登录,java服务器提供一个接口,移动设备客户端(android和ios)能通过这个接口把用户名和密码之类的东东传过来到服务器验证,然后服务器返回数据告诉客户端是否登录成功。比如0是成功,1是失败。中间数据的传递都是通过http协议完成.这个接口该怎么写?

代码1.2为服务器接口,接收到客户端的信息解析验证,并返回需要的信息。

服务端代码:

  1 public class TestTransfers extends HttpServlet {
  2
  3     private static final long serialVersionUID = 1L;
  4
  5     //HttpServletRequest 和 HttpServletResponse 用于接收请求和返回接口值
  6     //doGet用于接收get方法
  7     protected void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
  8
  9     }
 10
 11     //doPost用于接收post方法
 12     protected void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
 13
 14         // 判断请求报文是否来自代维系统的ip地址
 15         String ip = request.getRemoteHost();
 16         // 获取收到的报文
 17         BufferedReader reader = request.getReader();
 18
 19         String line = "";
 20
 21         StringBuffer inputString = new StringBuffer();
 22
 23         while ((line = reader.readLine()) != null) {
 24
 25             inputString.append(line);
 26
 27         }
 28         // 如有必要,可以在报文中增加其他验证和加密的参数
 29         // 解析获取到的报文,根据ip地址、其他验证、加密等等来判断请求报文的服务器是否有权限
 30         // 如果请求验证合格,则根据请求的参数装配返回的报文
 31         // 要返回的报文
 32         StringBuffer resultBuffer = new StringBuffer();
 33
 34         resultBuffer.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
 35
 36         resultBuffer.append("<report_data>");
 37
 38         resultBuffer.append("<respon_req>953947334</respon_req>");
 39
 40         resultBuffer.append("<respon_time>20120402113943</respon_time>");
 41
 42         resultBuffer.append("<result>");
 43
 44         resultBuffer.append("<id>0000</id>");
 45
 46         resultBuffer.append("<comment>成功</comment>");
 47
 48         resultBuffer.append("</result>");
 49
 50         resultBuffer.append("<items>");
 51
 52         resultBuffer.append("<item>");
 53
 54         resultBuffer.append("<county>长治县</county>");
 55
 56         resultBuffer.append("<company>铁通</company>");
 57
 58         resultBuffer.append("<speciality>线路</speciality>");
 59
 60         resultBuffer.append("<personnel>王加和</personnel>");
 61
 62         resultBuffer.append("<begin_time>20120301000000</begin_time>");
 63
 64         resultBuffer.append("<end_time>20120331235959</end_time>");
 65
 66         resultBuffer.append("<plan_quantity>50</plan_quantity>");
 67
 68         resultBuffer.append("<checkout_quantity>40</checkout_quantity>");
 69
 70         resultBuffer.append("<patrol_rate>0.80</patrol_rate>");
 71
 72         resultBuffer.append("</item>");
 73
 74         // ......
 75
 76         // ......
 77
 78         // ......
 79
 80         // 循环组装响应的报文
 81
 82         resultBuffer.append("</items>");
 83
 84         resultBuffer.append("</report_data>");
 85
 86         // 设置发送报文的格式
 87
 88         response.setContentType("text/xml");
 89
 90         response.setCharacterEncoding("UTF-8");
 91
 92         PrintWriter out = response.getWriter();
 93
 94         out.println(resultBuffer.toString());
 95
 96         out.flush();
 97
 98         out.close();
 99
100     }
101
102 }

客户端调用代码:

 1 public void sendMessage() throws Exception {
 2     System.out.println("调用servlet开始=================");
 3     StringBuffer sendStr = new StringBuffer();
 4     sendStr.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
 5     sendStr.append("<report_data>");
 6     sendStr.append("<request_req>953943547334</request_req>");
 7     sendStr.append("<request_time>2012040211394324</request_time>");
 8     sendStr.append("<request_param>");
 9     sendStr.append("<query_month>201203</query_month>");
10     sendStr.append("</request_param>");
11     sendStr.append("</report_data>");
12     BufferedReader reader = null;
13     try {
14         String strMessage = "";
15         StringBuffer buffer = new StringBuffer();
16         // 接报文的地址
17         URL uploadServlet = new URL(
18                "http://localhost:9090/TestTransfers");
19         HttpURLConnection servletConnection = (HttpURLConnection) uploadServlet
20                .openConnection();
21         // 设置连接参数
22         servletConnection.setRequestMethod("POST");
23         servletConnection.setDoOutput(true);
24         servletConnection.setDoInput(true);
25         servletConnection.setAllowUserInteraction(true);
26         // 开启流,写入XML数据
27         OutputStream output = servletConnection.getOutputStream();
28         System.out.println("发送的报文:");
29         System.out.println(sendStr.toString());
30         output.write(sendStr.toString().getBytes());
31         output.flush();
32         output.close();
33         // 获取返回的数据
34         InputStream inputStream = servletConnection.getInputStream();
35         reader = new BufferedReader(new InputStreamReader(inputStream));
36         while ((strMessage = reader.readLine()) != null) {
37            buffer.append(strMessage);
38         }
39         System.out.println("接收返回值:" + buffer);
40     } catch (java.net.ConnectException e) {
41         throw new Exception();
42     } finally {
43         if (reader != null) {
44            reader.close();
45         }
46     }
47  }
48
49  
时间: 2024-10-13 11:39:46

【转-整理】Java 对外接口开发(http)服务端-客户端的相关文章

项目二:企业级java电商网站开发(服务端)

声明:项目源于网络,支持正版教程,学习使用,仅记录在此 项目介绍 企业级java电商网站开发(服务端),模块划分:用户管理,商品管理,商品品类管理,订单管理,订单详情管理,购物车管理,收货地址管理,支付管理 集成工具使用idea,一个springboot项目,使用maven进行依赖管理,持久层使用mybatis(接口+mapper xml),没有前端页面,仅服务端开发,最后返回封装好的数据,以json方式呈现,可以使用postman工具,google浏览器的Restlet Client插件等进行

JAVA WEB接口开发简述

目录 1. JAVA WEB接口开发简述 1.1. 基本了解 1.2. 提供接口 1.3. 调用接口 1. JAVA WEB接口开发简述 1.1. 基本了解 当我们想去访问其他网站的接口时候,而又不想要登录验证等操作,那么可以选择使用平台提供的接口进行调用得到我们需要的信息.比如说,一个网站A有一个接口路径: http://192.168.10.119:8080/xmq/webservice/menu/search?ak=APP00013&token=yq6ZaljwYMa1x83r0hSHVh

基于java工程开发RMI服务端

ServiceRegist.java import java.rmi.Remote; import java.rmi.RemoteException; public interface ServiceRegist extends Remote{ public user login(String userName, String password) throws RemoteException; } ServiceRegisterImpl.java public class ServiceRegi

钉钉开发平台服务端笔记

钉钉开发平台服务端练习:1.在钉钉开发者平台创建一个微应用(前提是注册):2.将编写好的项目放在钉钉微应用中,建立两者的连接.把开发的项目的首页地址,和后台地址,给我们的微应用.地址必须是http://打头的公网地址.或者说是把工程放到一台服务器中,对外进行访问.3.然后根据服务端开发文档创建微应用的各个功能.如:部门操作:员工操作等. 如何接入?首先要有公司的CorpID企业标识和CorpSecret企业凭证密钥,然后再获取访问令牌accessToken. public static fina

grpc(3):使用 golang 开发 grpc 服务端和客户端

1,关于grpc-go golang 可以可以做grpc的服务端和客户端. 官网的文档: http://www.grpc.io/docs/quickstart/go.html https://github.com/grpc/grpc-go 和之前写的java的grpc客户端调用相同.也需要使用protobuf的配置文件. 但是golang下面的类库非常的简单,而且golang的性能也很强悍呢. 有些简单的业务逻辑真的可以使用golang进行开发. 性能强悍而且,消耗的资源也很小.java感觉上已

unity手游《摩卡世界online》全套源码(服务端+客户端+数据库)

unity手游<摩卡世界online>全套源码(服务端+客户端+数据库),客户端用unity3d开发,服务端用java开发,包含服务端源码.客户端源码.工具源码.数据库.配置搭建文档说明.编译好的文件等,解压后2.32G大小,要的速度下,过期不候. 摩卡世界是一款人气火热的休闲类手机网游,画面精致,出场人物造型各异,十分讨人喜爱,同时摩卡世界操作都是通过功能按钮的组合来完成,全拟真的操作规则和爽快的打击节奏让我们找回街机般的操作手感,华丽的必杀技.便捷的操作和流畅的画面,会让格斗爱好者爱不释手

Dubbo服务端/客户端demo

项目组采用分布式服务,线上有几十个应用,RPC调用完全依靠Dubbo.平时开发一直都是用其他人搭好的dubbo环境,最近自己抽空独立的搭建dubbo小demo,一个服务端,一个客户端. 服务端 服务端maven父工程 首先搭建一个maven父工程,引入dubbo和spring的依赖,dubbo可以和spring无缝集成. <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding

看懂 游戏《Minecraft》的崩溃报告 服务端/客户端

如何看懂Minecraft报错的关键信息. 让你如何看懂Minecraft报错 前言 一些俏皮话 寻找崩溃日志 打开崩溃日志 重要的事说三遍 下载文本编辑器 开始分析 深度分析 得出结论 修复报错 解决方案 看懂更多 结束 前言 [WARNING] 本篇适用于Minecraft服务端/客户端报错的诊断分析,其他游戏除外,比如网易 [WARNING] 本篇适用于Minecraft服务端/客户端报错的诊断分析,其他游戏除外,比如网易 [WARNING] 本篇适用于Minecraft服务端/客户端报错

手机淘宝客应用(服务端+客户端+数据库)源码项目

欢迎大家光临我的个人网店:http://shop.662p.com/shop/view8.html 这是一款比较完整的应用源码,手机淘宝客应用(服务端+客户端+数据库),客户端是Java代码实现编程,另外服务端是采用了php的常见框架实现的,代码里面有一个sql文件是数据库导入文件 ,里面的apk是用来升级的版本 设置. 文件大小:10.94 MB 服务器:thinkphp 代码里面有一个sql文件是数据库导入文件 ,里面的apk是用来升级的版本 设置update.xml 用来跟之前安装的对比版