java.lang.Objectjava.net.http.HttpRequest.BodyPublishers

Clase envolvente:
HttpRequest
public static class HttpRequest.BodyPublishers
extends Object

Implementaciones de BodyPublisher que implementan varios editores útiles, como publicar el cuerpo de la solicitud desde una Cadena o desde un archivo.

Los siguientes son ejemplos del uso de los editores de cuerpo predefinidos para convertir objetos Java comunes de alto nivel en un flujo de datos adecuado para enviar como cuerpo de solicitud:

// Request body from a StringHttpRequest request =HttpRequest.newBuilder().uri(URI.create("https://foo.com/")).header("Content-Type","text/plain; charset=UTF-8").POST(BodyPublishers.ofString("some body text")).build();// Request body from a FileHttpRequest request =HttpRequest.newBuilder().uri(URI.create("https://foo.com/")).header("Content-Type","application/json").POST(BodyPublishers.ofFile(Paths.get("file.json"))).build();// Request body from a byte arrayHttpRequest request =HttpRequest.newBuilder().uri(URI.create("https://foo.com/")).POST(BodyPublishers.ofByteArray(newbyte[]...)).build();
Ya que:
11

Resumen del método

Modificador y tipo Método Descripción
static HttpRequest.BodyPublisher fromPublisher​(Flow.PublisherByteBuffer> publisher) Devuelve un editor de cuerpo de solicitud cuyo cuerpo se recupera del Flow.Publisher.
static HttpRequest.BodyPublisher fromPublisher​(Flow.PublisherByteBuffer> publisher,
long contentLength)
Devuelve un editor de cuerpo de solicitud cuyo cuerpo se recupera del Flow.Publisher.
static HttpRequest.BodyPublisher noBody() Un editor de cuerpo de solicitud que no envía ningún cuerpo de solicitud.
static HttpRequest.BodyPublisher ofByteArray​(byte[] buf) Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el byte dado. array.
static HttpRequest.BodyPublisher ofByteArray​(byte[] buf,
int offset,
int length)
Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el contenido del byte dado. array de length bytes a partir del especificado offset.
static HttpRequest.BodyPublisher ofByteArrays​(Iterable iter) Un editor del cuerpo de solicitud que toma datos de un Iterable de matrices de bytes.
static HttpRequest.BodyPublisher ofFile​(Path path) Un editor del cuerpo de la solicitud que toma datos del contenido de un archivo.
static HttpRequest.BodyPublisher ofInputStream​(SupplierInputStream> streamSupplier) Un editor del organismo de solicitud que lee sus datos de un InputStream.
static HttpRequest.BodyPublisher ofString​(String body) Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el dado.
String
, convertido usando el UTF_8 conjunto de caracteres.
static HttpRequest.BodyPublisher ofString​(String s,
Charset charset)
Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el dado.
String
, convertido usando el juego de caracteres dado.

Métodos declarados en la clase java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Detalles del método

fromPublisher

publicstaticHttpRequest.BodyPublisher fromPublisher​(Flow.Publisher<?extendsByteBuffer> publisher)

Devuelve un editor de cuerpo de solicitud cuyo cuerpo se recupera del Flow.Publisher. El editor del cuerpo de la solicitud devuelta tiene una longitud de contenido desconocida.

Nota API:
Este método se puede utilizar como adaptador entre
BodyPublisher
y Flow.Publisher, donde se desconoce la cantidad de cuerpo de solicitud que publicará el editor.
Parámetros:
publisher – el editor responsable de publicar el cuerpo
Devoluciones:
un BodyPublisher

fromPublisher

publicstaticHttpRequest.BodyPublisher fromPublisher​(Flow.Publisher<?extendsByteBuffer> publisher,long contentLength)

Devuelve un editor de cuerpo de solicitud cuyo cuerpo se recupera del Flow.Publisher. El editor del cuerpo de la solicitud devuelta tiene la longitud de contenido indicada.

Lo dado contentLength es un número positivo, que representa la cantidad exacta de bytes que publisher debe publicar.

Nota API:
Este método se puede utilizar como adaptador entre
BodyPublisher
y Flow.Publisher, donde se conoce la cantidad de cuerpo de solicitud que publicará el editor.
Parámetros:
publisher – el editor responsable de publicar el cuerpo
contentLength – un número positivo que representa la cantidad exacta de bytes que publicará el editor
Devoluciones:
un BodyPublisher
Lanza:
IllegalArgumentException – si la longitud del contenido no es positiva

ofString

publicstaticHttpRequest.BodyPublisher ofString​(String body)

Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el dado.
String
, convertido usando el UTF_8 conjunto de caracteres.

Parámetros:
body – la Cadena que contiene el cuerpo
Devoluciones:
un BodyPublisher

ofString

publicstaticHttpRequest.BodyPublisher ofString​(String s,Charset charset)

Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el dado.
String
, convertido usando el juego de caracteres dado.

Parámetros:
s – la Cadena que contiene el cuerpo
charset – el juego de caracteres para convertir el string a bytes
Devoluciones:
un BodyPublisher

ofInputStream

publicstaticHttpRequest.BodyPublisher ofInputStream​(Supplier<?extendsInputStream> streamSupplier)

Un editor del organismo de solicitud que lee sus datos de un InputStream. A Supplier de InputStream se utiliza en caso de que la solicitud deba repetirse, ya que el contenido no se almacena en búfer. los Supplier puede volver null en intentos posteriores, en cuyo caso la solicitud falla.

Parámetros:
streamSupplier – un proveedor de InputStreams abiertos
Devoluciones:
un BodyPublisher

ofByteArray

publicstaticHttpRequest.BodyPublisher ofByteArray​(byte[] buf)

Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el byte dado. array.

Parámetros:
buf – el byte array conteniendo el cuerpo
Devoluciones:
un BodyPublisher

ofByteArray

publicstaticHttpRequest.BodyPublisher ofByteArray​(byte[] buf,int offset,int length)

Devuelve un editor de cuerpo de solicitud cuyo cuerpo es el contenido del byte dado. array de length bytes a partir del especificado offset.

Parámetros:
buf – el byte array conteniendo el cuerpo
offset – el desplazamiento del primer byte
length – la cantidad de bytes a usar
Devoluciones:
un BodyPublisher
Lanza:
IndexOutOfBoundsException – si el subrango se define como fuera de límites

ofFile

publicstaticHttpRequest.BodyPublisher ofFile​(Path path)throwsFileNotFoundException

Un editor del cuerpo de la solicitud que toma datos del contenido de un archivo.

Las verificaciones de permisos del administrador de seguridad se realizan en este método de fábrica, cuando el BodyPublisher es creado. Se debe tener cuidado de que el BodyPublisher no se comparte con código que no es de confianza.

Parámetros:
path – la ruta al archivo que contiene el cuerpo
Devoluciones:
un BodyPublisher
Lanza:
FileNotFoundException – si no se encuentra la ruta
SecurityException – si se niega la apertura del archivo para su lectura: en el caso del proveedor del sistema de archivos predeterminado del sistema y hay un administrador de seguridad instalado, checkRead se invoca para comprobar el acceso de lectura al archivo dado

ofByteArrays

publicstaticHttpRequest.BodyPublisher ofByteArrays​(Iterable<byte[]> iter)

Un editor del cuerpo de solicitud que toma datos de un Iterable de matrices de bytes. Un Iterable se proporciona que suministros Iterator instancias. Cada intento de enviar la solicitud da como resultado una invocación del Iterable.

Parámetros:
iter – un Iterable de matrices de bytes
Devoluciones:
un BodyPublisher

nadie

publicstaticHttpRequest.BodyPublishernoBody()

Un editor de cuerpo de solicitud que no envía ningún cuerpo de solicitud.

Devoluciones:
un BodyPublisher que se completa inmediatamente y no envía ningún cuerpo de solicitud.