我想请问一下,不用servlet能不能接收到http发送过来的数据流?我在网上搜索了半天,说的都是servlet,而我只想通过httpURL的方式传递JSON数据流到另外程序的某个java类的某个方法里面,大家有谁遇到过这个问题吗?求指导啊……
java做一个web server,这样可以接收httpURL传递的数据,收到数据后,再调用java类的方法
可以,最简单的方法就是用jquery的$.post();
不使用servlet 可以考虑使用webservice,soap方式的交互,不知道是不是满足你的要求,最近正好在做webservice相关交互的开发,可以共同讨论下
我以前用JAX-RS做过一个类似的,感觉这个挺好用的。个人觉得开发很快的。PS:本人现在水平很菜,望大神见谅,谢谢!
这种要求,就写一个socket服务了。
HttpServlet 有这个HttpServletRequest request, HttpServletResponse response,通过他们来发送,通过request.getparamete()来获取,你百度一下那个关键子,中间通过一个页面来传递,试试
如果双方都是JAVA应用可以使用RMI,如果不是可以使用socket方式
HttpURL读写数据挺简单的,
我的想法是,用ajax请求 json ,成功后调用另一个方法,同时把参数传递给另一个方法。
/**
* 以Json方式返回获取最新的资讯,不需要手动解析,JSON自己会进行解析
* @return
* @throws Exception
*/
public static List getJSONLastVideos() throws Exception
{
//
List videos = new ArrayList();
//
String path = "http://192.168.1.100:8080/videoweb/video/list.do?format=json";
//建立一个URL对象
URL url = new URL(path);
//得到打开的链接对象
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
//设置请求超时与请求方式
conn.setReadTimeout(5*1000);
conn.setRequestMethod("GET");
//从链接中获取一个输入流对象
InputStream inStream = conn.getInputStream();
//调用数据流处理方法
byte[] data = StreamTool.readInputStream(inStream);
String json = new String(data);
//构建JSON数组对象
JSONArray array = new JSONArray(json);
//从JSON数组对象读取数据
for(int i=0 ; i < array.length() ; i++)
{
//获取各个属性的值
JSONObject item = array.getJSONObject(i);
int id = item.getInt("id");
String title = item.getString("title");
int timelength = item.getInt("timelength");
//构造的对象加入集合当中
videos.add(new Video(id, title, timelength));
}
return videos;
}