io.micronaut.http.HttpResponse.getBody()方法的使用及代码示例

x33g5p2x  于2022-01-20 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(143)

本文整理了Java中io.micronaut.http.HttpResponse.getBody()方法的一些代码示例,展示了HttpResponse.getBody()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。HttpResponse.getBody()方法的具体详情如下:
包路径:io.micronaut.http.HttpResponse
类名称:HttpResponse
方法名:getBody

HttpResponse.getBody介绍

暂无

代码示例

代码示例来源:origin: micronaut-projects/micronaut-core

/**
 * @return The body or null
 */
default @Nullable B body() {
  return getBody().orElse(null);
}

代码示例来源:origin: micronaut-projects/micronaut-core

@SuppressWarnings("MagicNumber")
private void initResponse(HttpResponse<?> response) {
  Class<?> errorType = getErrorType(response);
  if (errorType != null) {
    response.getBody(errorType);
  } else {
    response.getBody(String.class);
  }
}

代码示例来源:origin: micronaut-projects/micronaut-core

@Override
public String getMessage() {
  Optional<Class<?>> errorType = Optional.ofNullable(getErrorType(response));
  if (errorType.isPresent()) {
    return getResponse().getBody(errorType.get()).flatMap(errorDecoder::getMessage).orElse(super.getMessage());
  } else {
    return super.getMessage();
  }
}

代码示例来源:origin: micronaut-projects/micronaut-core

/**
 * @param e           The throwable
 * @param description The error's description
 * @return The error message
 */
protected String getErrorMessage(Throwable e, String description) {
  String message;
  if (e instanceof HttpClientResponseException) {
    HttpClientResponseException hcre = (HttpClientResponseException) e;
    if (hcre.getStatus() == HttpStatus.BAD_REQUEST) {
      message = description + hcre.getResponse().getBody(String.class).orElse(e.getMessage());
    } else {
      message = description + e.getMessage();
    }
  } else {
    message = description + e.getMessage();
  }
  return message;
}

代码示例来源:origin: micronaut-projects/micronaut-core

/**
 * Perform an HTTP request for the given request object emitting the full HTTP response from returned
 * {@link org.reactivestreams.Publisher} and converting the response body to the specified type.
 *
 * @param request  The {@link HttpRequest} to execute
 * @param bodyType The body type
 * @param errorType The error type
 * @param <I>      The request body type
 * @param <O>      The response body type
 * @param <E>      The error type
 * @return A result of the given type or null the URI returns a 404
 * @throws HttpClientResponseException if an error status is returned
 */
@SuppressWarnings("unchecked")
default <I, O, E> O retrieve(HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) {
  HttpResponse<O> response = exchange(request, bodyType, errorType);
  if (HttpStatus.class.isAssignableFrom(bodyType.getType())) {
    return (O) response.getStatus();
  } else {
    return response
        .getBody()
        .orElseThrow(() -> new HttpClientResponseException(
            "Empty body",
            response
        ));
  }
}

代码示例来源:origin: micronaut-projects/micronaut-core

@Override
  public <I, O, E> io.micronaut.http.HttpResponse<O> exchange(io.micronaut.http.HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) {
    Flowable<io.micronaut.http.HttpResponse<O>> publisher = DefaultHttpClient.this.exchange(request, bodyType, errorType);
    return publisher.doOnNext((res) -> {
      Optional<ByteBuf> byteBuf = res.getBody(ByteBuf.class);
      byteBuf.ifPresent(bb -> {
        if (bb.refCnt() > 0) {
          ReferenceCountUtil.safeRelease(bb);
        }
      });
      if (res instanceof FullNettyClientHttpResponse) {
        ((FullNettyClientHttpResponse) res).onComplete();
      }
    }).blockingFirst();
  }
};

代码示例来源:origin: micronaut-projects/micronaut-core

/**
 * Perform an HTTP request for the given request object emitting the full HTTP response from returned
 * {@link Publisher} and converting the response body to the specified type.
 *
 * @param request  The {@link HttpRequest} to execute
 * @param bodyType The body type
 * @param errorType The error type
 * @param <I>      The request body type
 * @param <O>      The response body type
 * @param <E>      The error type
 * @return A {@link Publisher} that emits a result of the given type
 */
default <I, O, E> Publisher<O> retrieve(HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) {
  return Publishers.map(exchange(request, bodyType, errorType), response -> {
    if (bodyType.getType() == HttpStatus.class) {
      return (O) response.getStatus();
    } else {
      Optional<O> body = response.getBody();
      return body
          .orElseThrow(() -> new HttpClientResponseException(
              "Empty body",
              response
          ));
    }
  });
}

代码示例来源:origin: micronaut-projects/micronaut-core

@Test
  public void testGetPojoList() {
    ApplicationContext applicationContext = ApplicationContext.run();
    EmbeddedServer server = applicationContext.getBean(EmbeddedServer.class).start();

    HttpClient client = applicationContext.createBean(HttpClient.class, server.getURL());

    Flowable<HttpResponse<List>> flowable = Flowable.fromPublisher(client.exchange(
        HttpRequest.GET("/get/pojoList"), Argument.of(List.class, HttpGetSpec.Book.class)
    ));
    HttpResponse<List> response = flowable.blockingFirst();

    assertEquals(response.getStatus(), HttpStatus.OK);
    Optional<List> body = response.getBody();
    assertTrue(body.isPresent());

    List<HttpGetSpec.Book> list = body.get();
    assertEquals(list.size(), 1);
    assertTrue(list.get(0) instanceof HttpGetSpec.Book);

    client.stop();
    applicationContext.stop();
  }
}

代码示例来源:origin: micronaut-projects/micronaut-core

@Test
public void testSimpleGet() {
  ApplicationContext applicationContext = ApplicationContext.run();
  EmbeddedServer server = applicationContext.getBean(EmbeddedServer.class).start();
  HttpClient client = new DefaultHttpClient(server.getURL());
  Flowable<HttpResponse<String>> flowable = Flowable.fromPublisher(client.exchange(
      HttpRequest.GET("/get/simple"), String.class
  ));
  HttpResponse<String> response = flowable.blockingFirst();
  Assert.assertEquals(response.getStatus(), HttpStatus.OK);
  Optional<String> body = response.getBody(String.class);
  assertTrue(body.isPresent());
  assertEquals(body.get(), "success");
  client.stop();
  applicationContext.stop();
}

代码示例来源:origin: micronaut-projects/micronaut-core

@Test
public void testPostWithURITemplate() {
  EmbeddedServer embeddedServer = ApplicationContext.run(EmbeddedServer.class);
  RxHttpClient client = embeddedServer.getApplicationContext().createBean(RxHttpClient.class, embeddedServer.getURL());
  // tag::posturitemplate[]
  Flowable<HttpResponse<Book>> call = client.exchange(
      POST("/amazon/book/{title}", new Book("The Stand")),
      Book.class
  );
  // end::posturitemplate[]
  HttpResponse<Book> response = call.blockingFirst();
  Optional<Book> message = response.getBody(Book.class); // <2>
  // check the status
  assertEquals(
      HttpStatus.CREATED,
      response.getStatus() // <3>
  );
  // check the body
  assertTrue(message.isPresent());
  assertEquals(
      "The Stand",
      message.get().getTitle()
  );
  embeddedServer.stop();
  client.stop();
}

代码示例来源:origin: micronaut-projects/micronaut-core

@Test
public void testRetrieveWithPOJOResponse() {
  EmbeddedServer embeddedServer = ApplicationContext.run(EmbeddedServer.class);
  RxHttpClient client = embeddedServer.getApplicationContext().createBean(RxHttpClient.class, embeddedServer.getURL());
  // tag::pojoresponse[]
  Flowable<HttpResponse<Message>> call = client.exchange(
      GET("/greet/John"), Message.class // <1>
  );
  HttpResponse<Message> response = call.blockingFirst();
  Optional<Message> message = response.getBody(Message.class); // <2>
  // check the status
  assertEquals(
      HttpStatus.OK,
      response.getStatus() // <3>
  );
  // check the body
  assertTrue(message.isPresent());
  assertEquals(
      "Hello John",
      message.get().getText()
  );
  // end::pojoresponse[]
  embeddedServer.stop();
  client.stop();
}

代码示例来源:origin: micronaut-projects/micronaut-core

Optional<Message> message = response.getBody(Message.class); // <2>

代码示例来源:origin: micronaut-projects/micronaut-core

@Test
public void testPostRequestWithString() {
  EmbeddedServer embeddedServer = ApplicationContext.run(EmbeddedServer.class);
  RxHttpClient client = embeddedServer.getApplicationContext().createBean(RxHttpClient.class, embeddedServer.getURL());
  // tag::poststring[]
  Flowable<HttpResponse<String>> call = client.exchange(
      POST("/hello", "Hello John") // <1>
        .contentType(MediaType.TEXT_PLAIN_TYPE)
        .accept(MediaType.TEXT_PLAIN_TYPE), // <2>
      String.class // <3>
  );
  // end::poststring[]
  HttpResponse<String> response = call.blockingFirst();
  Optional<String> message = response.getBody(String.class); // <2>
  // check the status
  assertEquals(
      HttpStatus.CREATED,
      response.getStatus() // <3>
  );
  // check the body
  assertTrue(message.isPresent());
  assertEquals(
      "Hello John",
      message.get()
  );
  embeddedServer.stop();
  client.stop();
}

代码示例来源:origin: micronaut-projects/micronaut-core

Optional<Book> message = response.getBody(Book.class); // <2>

代码示例来源:origin: io.micronaut/micronaut-http

/**
 * @return The body or null
 */
default @Nullable B body() {
  return getBody().orElse(null);
}

代码示例来源:origin: io.micronaut/http-client

@SuppressWarnings("MagicNumber")
private void initResponse(HttpResponse<?> response) {
  Class<?> errorType = getErrorType(response);
  if (errorType != null) {
    response.getBody(errorType);
  } else {
    response.getBody(String.class);
  }
}

代码示例来源:origin: io.micronaut/micronaut-http-client

@SuppressWarnings("MagicNumber")
private void initResponse(HttpResponse<?> response) {
  Class<?> errorType = getErrorType(response);
  if (errorType != null) {
    response.getBody(errorType);
  } else {
    response.getBody(String.class);
  }
}

代码示例来源:origin: io.micronaut/http-client

@Override
public String getMessage() {
  Optional<Class<?>> errorType = Optional.ofNullable(getErrorType(response));
  if (errorType.isPresent()) {
    return getResponse().getBody(errorType.get()).flatMap(errorDecoder::getMessage).orElse(super.getMessage());
  } else {
    return super.getMessage();
  }
}

代码示例来源:origin: io.micronaut/micronaut-http-client

@Override
public String getMessage() {
  Optional<Class<?>> errorType = Optional.ofNullable(getErrorType(response));
  if (errorType.isPresent()) {
    return getResponse().getBody(errorType.get()).flatMap(errorDecoder::getMessage).orElse(super.getMessage());
  } else {
    return super.getMessage();
  }
}

代码示例来源:origin: io.micronaut/micronaut-http-client

@Override
  public <I, O, E> io.micronaut.http.HttpResponse<O> exchange(io.micronaut.http.HttpRequest<I> request, Argument<O> bodyType, Argument<E> errorType) {
    Flowable<io.micronaut.http.HttpResponse<O>> publisher = DefaultHttpClient.this.exchange(request, bodyType, errorType);
    return publisher.doOnNext((res) -> {
      Optional<ByteBuf> byteBuf = res.getBody(ByteBuf.class);
      byteBuf.ifPresent(bb -> {
        if (bb.refCnt() > 0) {
          ReferenceCountUtil.safeRelease(bb);
        }
      });
      if (res instanceof FullNettyClientHttpResponse) {
        ((FullNettyClientHttpResponse) res).onComplete();
      }
    }).blockingFirst();
  }
};

相关文章