u013192576
魔卡幻想
2014-07-22 21:02

servlet跨web请求方法

已采纳

现在在做一个项目(系统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不能实现。

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

3条回答

  • leehuat leehuat 7年前
    1. 新项目可以采用Apache httpClient DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet getRequest = new HttpGet( "https://xxxxxxx"); getRequest.addHeader("accept", "application/json");

    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();

    只用过这两种
    其他的在想吧

    点赞 评论 复制链接分享
  • lorewolf311 tianchao_ 7年前

    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]

    点赞 评论 复制链接分享
  • renminzdb2 renminzdb2 7年前

    兄弟,你搞复杂了。你现在是要提供一个接口给对方。你只要考虑三步:第一,基本的servlet。相信这个你会的,第二步,json数据解析与处理。servet传数据你会把,接收数据会吧。json数据知道是什么吧。一般接口的处理,肯定是以一定的数据结构作为返回的。即使调用的参数不对,接口都要给出反馈的。所以只要调用接口就要给出反馈。这个在于你业务怎么处理,一些出现的错误也要规划到接口返回中去。你json大概可以这么设计 result:{flag:'ok',data;'',description:''}。 如果返回的类型分类比较多,可以考虑给返回编号,成功返回码是1,其他的都可以具体分个编号,这样调试根据返回编号就可以知道接口调用错误原因了,你看看微信的接口就是这么干的,当然大多数都是这么干的。第三部:了解下webLogic 怎么发布https的servlet。这些都解决了,你的任务也就完成了。有什么问题,私我,谢谢。

    点赞 评论 复制链接分享

相关推荐