1. 19 7月, 2016 1 次提交
  2. 18 7月, 2016 1 次提交
    • B
      Add client-side exception hierarchy · 7a0c2422
      Brian Clozel 提交于
      The `WebClient` has a new exception hierarchy:
      
      * `WebClientException` is the root of all exceptions thrown by the
      `WebClient`
      * `WebClientResponseException` are all exceptions associated with
      specific HTTP response status codes
      * `WebClientErrorException` and `WebServerErrorException` are
      respectively for 4xx and 5xx HTTP status codes
      
      `ResponseExtractor` implementations are adapted to optionally throw
      exceptions if it's impossible to extract the relevant parts of the
      response (e.g. extracting the response body if the response is a 404).
      
      This commit also introduces `ResponseErrorHandler`s that take care of
      the whole exception mapping infrastructure. Since
      `WebClientResponseException`s provide the status, headers and response
      body, we also need a dedicated mechanism to extract information from the
      response body at that level.
      
      The `BodyExtractors` are responsible for extracting that information
      from the exception, given they are provided with all the information
      they need; in that case, message decoders are required.
      
      To convey all this new information downstream, the `WebClient` now wraps
      the message converters and response error handler instances into a
      dedicated `WebClientConfig` object.
      7a0c2422
  3. 15 7月, 2016 3 次提交
  4. 07 4月, 2016 1 次提交
    • B
      Propagate Errors in DefaultHttpRequestBuilder · 8ed2925c
      Brian Clozel 提交于
      This commit introduces the new `WebClientException` for wrapping
      client-side exceptions.
      This exception is now thrown when now message encoder can be found for
      writing the request body as an HTTP request message.
      
      Fixes #83
      8ed2925c
  5. 02 2月, 2016 3 次提交
    • B
      Add WebClient and its WebResponseExtractor API · 69ce33e1
      Brian Clozel 提交于
      This commit adds the `WebClient`, which relies on several parts of our
      infrastructure:
      * a `ClientHttpRequestFactory` to drive the underlying client library
      * a `HttpRequestBuilder` builder API to create the client request
      * a `WebResponseExtractor` to extract the "low-level"
      `ClientHttpResponse` into a higher level representation such as a
      decoded body
      
      The `WebResponseExtractors` helper class contains many extractor
      implementations all based on the `Flux`/`Mono` composition API.
      69ce33e1
    • B
      Add HttpRequestBuilder default implementation · a6469baa
      Brian Clozel 提交于
      This commit adds a `DefaultHttpRequestBuilder` and its companion static
      builders in `HttpRequestBuilders`. This allows to build client requests
      with a friendly builder API, inspired by Spring's MockMvc API.
      a6469baa
    • B
      Add base contracts for the Web client · 0983d302
      Brian Clozel 提交于
      This commit adds the base contracts for the Web client.
      The "Reactive" prefixes of the previously commited contracts has been
      removed to match the server ones.
      
      Both the `ClientHttpRequest` and the `ServerHttpResponse` extend
      `ReactiveHttpOutputMessage`, which now has a `beforeCommit` method,
      necessary in both client and server implementations.
      
      `HttpRequestBuilder` will be used by the developers to create requests
      with a nice builder API. `ClientHttpRequestFactory` will provide support
      for many HTTP client libraries in this new client.
      0983d302
  6. 15 1月, 2016 1 次提交
  7. 17 12月, 2015 1 次提交
  8. 01 12月, 2015 1 次提交