魔卡幻想 2014-07-22 21:02
浏览 267
已采纳

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 2014-07-22 22:13
    关注
    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();

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作