现在在做一个项目(系统A),是用java+struts1+webLogic写的。PM说有另外一个系统(系统B)要调用我们的系统,让写一个外部的API。协议是Https,方法是servlet(post提交)+json。我简单模拟了A系统(tomcat+servlet),想做的事情是画面上有两个Text框:
在before中输入数字1,然后提交到后台调用service()方法,在方法里将before作为参数去请求调用系统B的接口,接口内容比方是让before+1,再把结果返回到系统A的画面after里。请教各位帮忙搭一下两边的架子:
1.用什么方法去请求,请求的路径是什么样的结构
2.参数的传递与返回
3.接口是怎样定义的以及如何调用
在网上查了好久,就是找不到自己需要的。试了下RequestDispatcher,要求请求的地址以“/”为开头,是在一个系统里。而我这2个系统是用的不一样的Web端口,所以感觉RequestDispatcher不能实现。
HttpResponse response = httpClient.execute(getRequest);
if (response.getStatusLine().getStatusCode() != 200) {
throw new RuntimeException("Failed : HTTP error code : "
+ response.getStatusLine().getStatusCode());
}
BufferedReader br = new BufferedReader(
new InputStreamReader((response.getEntity().getContent())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
结果是json数据
2.采用spring 提供的RestTemplate
HttpHeaders headers = new HttpHeaders();
headers.setAccept(Arrays.asList(MediaType.APPLICATION_XML));
HttpEntity entity = new HttpEntity("parameters", headers);
ResponseEntity response = getRestTemplate().exchange(url, HttpMethod.GET, entity, String.class);
String responseBody = response.getBody();
只用过这两种
其他的在想吧
兄弟,你搞复杂了。你现在是要提供一个接口给对方。你只要考虑三步:第一,基本的servlet。相信这个你会的,第二步,json数据解析与处理。servet传数据你会把,接收数据会吧。json数据知道是什么吧。一般接口的处理,肯定是以一定的数据结构作为返回的。即使调用的参数不对,接口都要给出反馈的。所以只要调用接口就要给出反馈。这个在于你业务怎么处理,一些出现的错误也要规划到接口返回中去。你json大概可以这么设计 result:{flag:'ok',data;'',description:''}。 如果返回的类型分类比较多,可以考虑给返回编号,成功返回码是1,其他的都可以具体分个编号,这样调试根据返回编号就可以知道接口调用错误原因了,你看看微信的接口就是这么干的,当然大多数都是这么干的。第三部:了解下webLogic 怎么发布https的servlet。这些都解决了,你的任务也就完成了。有什么问题,私我,谢谢。
1、你写接口就行,至于测试直接用浏览器访问你的接口就行,检查返回结果是不是正确。
2、struts1 返回json 可以参考
[url]http://ipc.iteye.com/blog/705749[/url]
struts1你估计没问题,有问题的话google搜个例子,返回json格式数据需要json的jar包。
3、https 可参考
[url]http://flysky7931.iteye.com/blog/305074[/url]
[url]http://willtea.iteye.com/blog/1941879[/url]