java - 有没有办法使用 Zuul 代理内部 http 调用?

标签 java http proxy netflix-zuul

我有一个 spring-boot 应用程序,我可以向它发出 HTTP 请求,并且它将向某些应用程序发送另一个 HTTP 请求互联网上的其他资源。

@RestController
@SpringBootApplication
public class BookApplication {

  @RequestMapping(value = "/available")
  public String available() throws Exception {

    String url = "https://www.google.com";

    URL obj = new URL(url);
    HttpURLConnection con = (HttpURLConnection) obj.openConnection();

    con.setRequestMethod("GET");
    con.setRequestProperty("User-Agent", "Mozilla/5.0");
    BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
    StringBuffer response = new StringBuffer();
    String inputLine;

    while ((inputLine = in.readLine()) != null) {
      response.append(inputLine);
    }
    in.close();
    return "Spring in Action";
  }

  public static void main(String[] args) {
    SpringApplication.run(BookApplication.class, args);
  }
}

我还有另一个 spring-boot 应用程序,它是 Zuul 代理。

@EnableZuulProxy
@SpringBootApplication
public class GatewayApplication {

  public static void main(String[] args) {
    SpringApplication.run(GatewayApplication.class, args);
  }

  @Bean
  public SimpleFilter simpleFilter() {
    return new SimpleFilter();
  }
}

SimpleFilter 类是:

public class SimpleFilter extends ZuulFilter {

  private static Logger log = LoggerFactory.getLogger(SimpleFilter.class);

  @Override
  public String filterType() {
    return "pre";
  }

  @Override
  public int filterOrder() {
    return 1;
  }

  @Override
  public boolean shouldFilter() {
    return true;
  }

  @Override
  public Object run() {
    RequestContext ctx = RequestContext.getCurrentContext();
    HttpServletRequest request = ctx.getRequest();

    log.info(String.format("%s request to %s", request.getMethod(), request.getRequestURL().toString()));

    return null;
  }

}

以及 Zuul 代理应用程序的 application.properties:

zuul.routes.books.url=http://localhost:8090

ribbon.eureka.enabled=false

server.port=8080

基本上,所有内容都来自本教程 tutorial

所以我想知道是否有机会将请求代理到由 BookApplication 中的 /available 资源完成的“https://www.google.com ”?

最佳答案

没有办法做到这一点。 Zuul 不适合这类事情。

关于java - 有没有办法使用 Zuul 代理内部 http 调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48867045/

相关文章:

java - 使用数组中的第一个 'n' 整数递归打印所有子集

angular - HttpParams 设置为空

http - MIME header 声明是一个好的做法吗?

javascript - 如何通过API或JS合并视频和音频?

java - Maven Netbeans 代理

http - 是否可以更改 nginx 中 proxy_pass 网关关闭时返回的 HTTP 状态代码?

java - 如何在 Realm 浏览器中查看我的 Realm 文件?

java - 如何使用 Cygwin 创建 jar 文件?

node.js - 在 express 上使用 nginx 和 ssl 实现的反向代理失败

Java:生成一定范围内的数字序列?