1. 23 7月, 2016 1 次提交
  2. 21 7月, 2016 3 次提交
  3. 20 7月, 2016 4 次提交
  4. 19 7月, 2016 2 次提交
  5. 16 7月, 2016 2 次提交
  6. 15 7月, 2016 5 次提交
  7. 13 7月, 2016 6 次提交
  8. 12 7月, 2016 8 次提交
  9. 09 7月, 2016 1 次提交
    • R
      Helpers for get/post in RequestMappingIntegrationTests · 407715b8
      Rossen Stoyanchev 提交于
      This commit replaces the current helper methods in
      RequestMappingIntegrationTests with generic helper methods to perform
      HTTP GET and POST requests.
      
      This results in more transparent code that shows the exact HTTP
      inputs and outputs and is also more flexible to change for
      variations in testing.
      407715b8
  10. 08 7月, 2016 8 次提交
    • B
      Add RxJava1 support for request building/extracting · 99697118
      Brian Clozel 提交于
      This commit adds the required infrastructure to build HTTP requests as
      well as extracting relevant information from HTTP responses using the
      RxJava 1.x API, where Observable and Single don't extend Publisher.
      99697118
    • B
      Refactor HTTP client contracts · 4892436e
      Brian Clozel 提交于
      This commit refactors the `ClientHttpRequestFactory` into an
      `ClientHttpConnector` abstraction, in order to reflect that
      `ClientHttpRequest`s only "exist" once the client is connected
      to the origin server.
      
      This is why the HTTP client is now callback-based, containing all
      interactions with the request within a
      `Function<ClientHttpRequest,Mono<Void>>` that signals when it's done
      writing to the request.
      
      The `ClientHttpRequest` contract also adopts `setComplete()`
      and promotes that method to the `ReactiveHttpOutputMessage` contract.
      
      This commit also adapts all other APIs to that change and fixes a few
      issues, including:
      
      * use `HttpMessageConverter`s instead of `Encoders`/`Decoders`
      * better handle type information about request content publishers
      * support client cookies in HTTP requests
      * temporarily remove the RxNetty client support
      4892436e
    • B
      Update after `reactor.core.converter.Converters` changes · b5bce1f0
      Brian Clozel 提交于
      Reactor's `DependencyUtils` has been renamed to `Converters` and
      all the `from` converter methods have been disambiguated to
      `fromPublisher`, `toPublisher`.
      b5bce1f0
    • V
      Refactor AbstractRequestBodyPublisher states · d68232c8
      Violeta Georgieva 提交于
      The state machine is refactored in order to solve various concurrency
      issues.
      d68232c8
    • R
      Polish tests · d7a43d20
      Rossen Stoyanchev 提交于
      d7a43d20
    • R
      Comprensive support for empty request body · 7534092e
      Rossen Stoyanchev 提交于
      This commit adds support for handling an empty request body with both
      HttpEntity where the body is not required and with @RequestBody where
      the body is required depending on the annotation's required flag.
      
      If the body is an explicit type (e.g. String, HttpEntity<String>) and
      the body is required an exception is raised before the method is even
      invoked or otherwise the body is passed in as null.
      
      If the body is declared as an async type (e.g. Mono<String>,
      HttpEntity<Mono<String>>) and is required, the error will flow through
      the async type. If not required, the async type will be passed with no
      values (i.e. empty).
      
      A notable exception is rx.Single which can only have one value or one
      error and cannot be empty. As a result currently the use of rx.Single
      to represent the request body in any form effectively implies the body
      is required.
      7534092e
    • R
      Fix StringDecoder#decodeToMono issue with empty input · a5843111
      Rossen Stoyanchev 提交于
      Before this change decodeToMono always created a StringBuilder to
      aggregate resulting in an "" (empty string) rather than an empty
      Mono for an empty input stream.
      
      Now we aggregate in the DataBuffer instead and then decode to String.
      a5843111
    • R
      Support HttpEntity method arguments · 1e1e2f8b
      Rossen Stoyanchev 提交于
      The RequestBodyArgumentResolver has been refactored to have a shared
      base class and tests with the new HttpEntityMethodArgumentResolver.
      
      An HttpEntity argument is not expected to have an async wrapper because
      the request headers are available immediately. The body however can be
      asynchronous, e.g. HttpEntity<Flux<String>>.
      1e1e2f8b