Vertx добраться до внешнего адреса - PullRequest
0 голосов
/ 25 апреля 2020

Привет! Я пытаюсь сделать запрос к внешнему сервису с использованием httpClient vert.x, но получаю сообщение об ошибке: Не удалось выполнить поиск в домене. Исходное имя хоста: «google.com» не удалось разрешить «google.com». Чего мне не хватает в приведенном ниже коде? Я не уверен насчет этих AddressResolverOptions, я читал о них, но все же я не уверен, за что они несут ответственность. Я бы хотел сделать запрос как можно более простым, но чем больше я исследую, тем сложнее это кажется

package io.vertx.starter;

import io.vertx.core.Vertx;
import io.vertx.core.VertxOptions;

import io.vertx.core.dns.AddressResolverOptions;
import io.vertx.core.http.HttpClientOptions;
import io.vertx.ext.unit.Async;
import io.vertx.ext.unit.TestContext;
import io.vertx.ext.unit.junit.VertxUnitRunner;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;

import java.net.URL;
import java.util.Collections;

@RunWith(VertxUnitRunner.class)
public class MainVerticleTest {

  private Vertx vertx;

  @Before
  public void setUp(TestContext tc) {
     vertx = Vertx.vertx(new VertxOptions().setAddressResolverOptions(
       new AddressResolverOptions().addSearchDomain("google.com").addSearchDomain("bar.com"))
     );
//    vertx = Vertx.vertx();
    vertx.deployVerticle(MainVerticle.class.getName(), tc.asyncAssertSuccess());
  }

  @After
  public void tearDown(TestContext tc) {
    vertx.close(tc.asyncAssertSuccess());
  }

  @Test
  public void testThatTheServerIsStarted(TestContext tc) {

    final HttpClientOptions httpClientOptions = new HttpClientOptions();
    httpClientOptions.setConnectTimeout(300);
    httpClientOptions.setIdleTimeout(5);
//    httpClientOptions.` `
    httpClientOptions.setSsl(true).setTrustAll(true);
//    final URL url = new URL("currentUrl");

    Async async = tc.async();

    vertx.createHttpClient(httpClientOptions).getNow(
      443,"google.com", "/", response -> {
      System.out.println(response.statusCode());
      async.complete();
      });
//
//    Async async = tc.async();
//    vertx.createHttpClient().getNow(8080, "localhost", "/", response -> {
//      tc.assertEquals(response.statusCode(), 200);
//      response.bodyHandler(body -> {
//        tc.assertTrue(body.length() > 0);
//        async.complete();
//      });
//    });
  }

}
...