2 baidu 23086307 baidu_23086307 于 2016.04.27 12:52 提问

servlet怎么发布接口供android客户端访问?

我是做android开发的,以前一直用的是cxf发布webservice,不过现在想弄servlet发布接口json传递数据,不知道怎么办啦!跪求大神,小女子感激不尽

4个回答

w172087242
w172087242   Ds   Rxr 2016.04.27 16:24

/**
* 这里就不给你设置字符集编码了
*/
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// 获取输出
PrintWriter out = response.getWriter();
// 可接收的类型application/json application/xml
try{
String accept = request.getHeader("Accept");
if(accept==null){
out.write("{\"errorCode\":\"101\",\"errorMsg\":\"header accept is must\"}");
return;
}
//默认用json,这里不给你提供引入
String param = request.getParameter("param");
//这里用的是com.alibaba.fastjson包下的,属于fastjson
JSONObject json = JSONObject.parseObject(param);
//这里处理自己的业务逻辑
System.out.println(json);
out.write("{\"operFlag\":\"1000\",\"data\":{...your jsondata}}");
}finally{
out.flush();
out.close();
}
}

然后你在安卓发起http请求就可以了
w172087242
w172087242   Ds   Rxr 2016.04.27 13:37

通信用http格式就可以,风格可以是restful,也可以是普通http。
和正常servlet请求一样,来了请求就可以
获取参数:request.getParameter("");
获取头:request.getHeader("");
如果参数是json对象,可以用json工具转换,如fastjson,Gson等

返回类型json:
可以直接用response获取输出流输出,也可以用io包装类进行输出。

这个就可以满足你的servlet发布正常接口了。

如果有安全设定,可以在请求头加权限等。

w172087242
w172087242 你加我吧qq:172087242
大约 2 年之前 回复
baidu_23086307
baidu_23086307 你qq多少?加你个qq吧!我的2762284708
大约 2 年之前 回复
baidu_23086307
baidu_23086307 谢谢啊呀!大神
大约 2 年之前 回复
baidu_23086307
baidu_23086307 嗯嗯!会写,就是继承httpservlet
大约 2 年之前 回复
w172087242
w172087242 回复??double?: 你会servlet吗?会的话我可以给你写个片段。
大约 2 年之前 回复
baidu_23086307
baidu_23086307 谢谢啦!有demo吗?跪求
大约 2 年之前 回复
baiyuliang2013
baiyuliang2013   2016.05.06 09:55
CSDNXIAON
CSDNXIAON   2016.04.27 14:22

CSDNReader(android客户端)发布!!
----------------------同志你好,我是CSDN问答机器人小N,奉组织之命为你提供参考答案,编程尚未成功,同志仍需努力!

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Java 提供接口供其它应用调用
/**@author    * 会员-接口类    * 相关参数协议:   * 00 请求失败   * 01 请求成功   * 02 返回空值   * 03 请求协议参数不完整       * 04  用户名或密码错误   * 05  FKEY验证失败  */ @Controller @RequestMapping(value="/appuser") public clas
android客户端访问tomcat搭建的servlet服务器并互传数据
第一步,服务器软件环境的搭建(lz用的win7 64位,eclipse javaee版本+android插件):    安装apache tomcat服务器。    安装mysql数据库(要想用javaee写的servlet连接mysql服务器需要两个驱动,一个mysql的驱动,一个jdbc的驱动,好像是老师教的,也可能我记错了,要是有问题欢迎批评指正,本人学习不太好。。),mysql数据库没
python3.6写一个http接口服务,给别人调用
找了好多东西,都不靠普老版本的: https://www.cnblogs.com/dpf-learn/p/8028029.html这个不错,但还是不行:https://blog.csdn.net/linux_hacher/article/details/78753805看到这里,原来改版了:https://docs.python.org/3/library/http.server.html#htt...
python开发一个接口(此处以django为例),供第三方访问
Python编写API接口要求通过http://172.17.37.62:8888/create_copy_task/?src=/mnt/source1/qin.txt&dst=/mnt/target1/qin.txt进行访问,参数src和dst分别代表源文件路径和目标端文件路径1.编写应用url:浏览器会自动将?后面识别为参数。urlpatterns = [ url(r'^cre...
python 接口实现 供第三方调用
实验环境 1.环境问题 python 2.7 以上自带的pyunit bottle 作为一个python的简易服务器 在python安装目录 打开命令窗口(具体 shift+鼠标右键) 执行代码pip install bottle2.写一个bottle服务,也就是所谓的一个接口,供给浏览器调用的接口#接口登陆 @route('/log
android客户端与servlet服务器交互简单示例
前段时间需要写一个能双向解析XML的程序,但是客户端只能从服务器里读,但是死活传不上去,倒腾了两天终于搞好了。 下面直接贴示例代码,不明白的话再问吧。 这是android客户端,记得得在AndroidManifest.xml文件里添加INTENET权限。 public void onCreate(Bundle savedInstanceState) { super.on
HTTP通信--Android客户端与Servlet通信
android客户端//设置一个handler对象(新开一个Thread需要一个handler对象发送message) //根据发送过来的message进行相关的操作 private Handler handler = new Handler() { @Override public void handleMessage(Message msg) {
java接口供APP端调用
package com.idorabox.manage.web.app;import java.util.HashMap; import java.util.Map; import java.io.IOException; import java.io.PrintWriter; import javax.annotation.Resource; import javax.servlet.http.H
android客户端与部署到tomcat的servlet服务器之间实现http通信
博主目前小白,为了完成这个踩到不少地雷,在此处记录下,可能错误忘记了,以后想起来再更新。服务器端:public class Servlet extends HttpServlet { @Override protected void doPost(HttpServletRequest request, HttpServletResponse response) thr
android客户端通过json连接servlet服务端
开发一个基于android的app作为一个客户端,servlet作为服务端实现简单的注册与登陆功能。通过json来传递数据,进行验证和插入。由于对json的具体规范化没做过多了解,且处于学习阶段,难免会有一些错误,尽请谅解。 本文采用的工具有tomcat ,eclipse,android studio, mysql,jdk1.8; jar包有json-simple-1.1.1.jar,mysq