类 RequestBody
- 直接已知子类:
FormBody,MultipartBody
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明longReturns the number of bytes that will be written tosinkin a call towriteTo(com.lark.oapi.okio.BufferedSink), or -1 if that count is unknown.abstract MediaTypeReturns the Content-Type header for this body.static RequestBodyReturns a new request body that transmitscontent.static RequestBodyReturns a new request body that transmitscontent.static RequestBodycreate(MediaType contentType, ByteString content) Returns a new request body that transmitscontent.static RequestBodyReturns a new request body that transmits the content offile.static RequestBodyReturns a new request body that transmitscontent.booleanisDuplex()A duplex request body is special in how it is transmitted on the network and in the API contract between OkHttp and the application.booleanReturns true if this body expects at most one call towriteTo(com.lark.oapi.okio.BufferedSink)and can be transmitted at most once.abstract voidwriteTo(BufferedSink sink) Writes the content of this request tosink.
-
构造器详细资料
-
RequestBody
public RequestBody()
-
-
方法详细资料
-
create
Returns a new request body that transmitscontent. IfcontentTypeis non-null and lacks a charset, this will use UTF-8. -
create
Returns a new request body that transmitscontent. -
create
Returns a new request body that transmitscontent. -
create
public static RequestBody create(@Nullable MediaType contentType, byte[] content, int offset, int byteCount) Returns a new request body that transmitscontent. -
create
Returns a new request body that transmits the content offile. -
contentType
Returns the Content-Type header for this body. -
contentLength
Returns the number of bytes that will be written tosinkin a call towriteTo(com.lark.oapi.okio.BufferedSink), or -1 if that count is unknown.- 抛出:
IOException
-
writeTo
Writes the content of this request tosink.- 抛出:
IOException
-
isDuplex
public boolean isDuplex()A duplex request body is special in how it is transmitted on the network and in the API contract between OkHttp and the application.This method returns false unless it is overridden by a subclass.
Duplex Transmission
With regular HTTP calls the request always completes sending before the response may begin receiving. With duplex the request and response may be interleaved! That is, request body bytes may be sent after response headers or body bytes have been received.
Though any call may be initiated as a duplex call, only web servers that are specially designed for this nonstandard interaction will use it. As of 2019-01, the only widely-used implementation of this pattern is gRPC.
Because the encoding of interleaved data is not well-defined for HTTP/1, duplex request bodies may only be used with HTTP/2. Calls to HTTP/1 servers will fail before the HTTP request is transmitted. If you cannot ensure that your client and server both support HTTP/2, do not use this feature.
Duplex APIs
With regular request bodies it is not legal to write bytes to the sink passed to
writeTo(com.lark.oapi.okio.BufferedSink)after that method returns. For duplex requests bodies that condition is lifted. Such writes occur on an application-provided thread and may occur concurrently with reads of theResponseBody. For duplex request bodies,writeTo(com.lark.oapi.okio.BufferedSink)should return quickly, possibly by handing off the provided request body to another thread to perform writing. -
isOneShot
public boolean isOneShot()Returns true if this body expects at most one call towriteTo(com.lark.oapi.okio.BufferedSink)and can be transmitted at most once. This is typically used when writing the request body is destructive and it is not possible to recreate the request body after it has been sent.This method returns false unless it is overridden by a subclass.
By default OkHttp will attempt to retransmit request bodies when the original request fails due to a stale connection, a client timeout (HTTP 408), a satisfied authorization challenge (HTTP 401 and 407), or a retryable server failure (HTTP 503 with a
Retry-After: 0header).
-