Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
带水的鱼儿
spring-framework
提交
ce6217be
S
spring-framework
项目概览
带水的鱼儿
/
spring-framework
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
ce6217be
编写于
8月 03, 2021
作者:
R
Rossen Stoyanchev
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Polishing contribution
Closes gh-27220
上级
e290ae28
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
30 addition
and
40 deletion
+30
-40
spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientRequest.java
...framework/web/reactive/function/client/ClientRequest.java
+6
-5
spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestBuilderTests.java
...ive/function/client/DefaultClientRequestBuilderTests.java
+24
-35
未找到文件。
spring-webflux/src/main/java/org/springframework/web/reactive/function/client/ClientRequest.java
浏览文件 @
ce6217be
...
...
@@ -125,16 +125,17 @@ public interface ClientRequest {
// Static builder methods
/**
* Create a builder with the method, URI, headers, cookies, attributes, and body of the given request.
* @param other the request to copy the method, URI, headers, cookies, attributes, and body from
* @return the created builder
* Create a builder initialized with the HTTP method, url, headers, cookies,
* attributes, and body of the given request.
* @param other the request to copy from
* @return the builder instance
*/
static
Builder
from
(
ClientRequest
other
)
{
return
new
DefaultClientRequestBuilder
(
other
);
}
/**
* Create a builder with the given method and url.
* Create a builder with the given
HTTP
method and url.
* @param method the HTTP method (GET, POST, etc)
* @param url the url (as a URI instance)
* @return the created builder
...
...
@@ -146,7 +147,7 @@ public interface ClientRequest {
}
/**
* Create a request builder with the given method and url.
* Create a request builder with the given
HTTP
method and url.
* @param method the HTTP method (GET, POST, etc)
* @param url the url (as a URI instance)
* @return the created builder
...
...
spring-webflux/src/test/java/org/springframework/web/reactive/function/client/DefaultClientRequestBuilderTests.java
浏览文件 @
ce6217be
...
...
@@ -51,20 +51,24 @@ import static org.springframework.http.HttpMethod.POST;
*/
public
class
DefaultClientRequestBuilderTests
{
private
static
final
URI
DEFAULT_URL
=
URI
.
create
(
"https://example.com"
);
@Test
public
void
from
()
throws
URISyntaxException
{
ClientRequest
other
=
ClientRequest
.
create
(
GET
,
URI
.
create
(
"https://example.com"
)
)
public
void
from
()
{
ClientRequest
other
=
ClientRequest
.
create
(
GET
,
DEFAULT_URL
)
.
header
(
"foo"
,
"bar"
)
.
cookie
(
"baz"
,
"qux"
)
.
attribute
(
"attributeKey"
,
"attributeValue"
)
.
attribute
(
"anotherAttributeKey"
,
"anotherAttributeValue"
)
.
httpRequest
(
request
->
{})
.
build
();
ClientRequest
result
=
ClientRequest
.
from
(
other
)
.
headers
(
httpHeaders
->
httpHeaders
.
set
(
"foo"
,
"baar"
))
.
cookies
(
cookies
->
cookies
.
set
(
"baz"
,
"quux"
))
.
build
();
assertThat
(
result
.
url
()).
isEqualTo
(
new
URI
(
"https://example.com"
));
assertThat
(
result
.
url
()).
isEqualTo
(
DEFAULT_URL
);
assertThat
(
result
.
method
()).
isEqualTo
(
GET
);
assertThat
(
result
.
headers
().
size
()).
isEqualTo
(
1
);
assertThat
(
result
.
headers
().
getFirst
(
"foo"
)).
isEqualTo
(
"baar"
);
...
...
@@ -81,13 +85,10 @@ public class DefaultClientRequestBuilderTests {
BodyInserter
<
String
,
ClientHttpRequest
>
inserter
=
(
response
,
strategies
)
->
{
byte
[]
bodyBytes
=
body
.
getBytes
(
UTF_8
);
DataBuffer
buffer
=
DefaultDataBufferFactory
.
sharedInstance
.
wrap
(
bodyBytes
);
return
response
.
writeWith
(
Mono
.
just
(
buffer
));
};
ClientRequest
other
=
ClientRequest
.
create
(
POST
,
URI
.
create
(
"https://example.com"
))
.
body
(
inserter
).
build
();
ClientRequest
other
=
ClientRequest
.
create
(
POST
,
DEFAULT_URL
).
body
(
inserter
).
build
();
ClientRequest
result
=
ClientRequest
.
from
(
other
).
build
();
List
<
HttpMessageWriter
<?>>
messageWriters
=
new
ArrayList
<>();
...
...
@@ -105,9 +106,8 @@ public class DefaultClientRequestBuilderTests {
}
@Test
public
void
method
()
throws
URISyntaxException
{
URI
url
=
new
URI
(
"https://example.com"
);
ClientRequest
.
Builder
builder
=
ClientRequest
.
create
(
DELETE
,
url
);
public
void
method
()
{
ClientRequest
.
Builder
builder
=
ClientRequest
.
create
(
DELETE
,
DEFAULT_URL
);
assertThat
(
builder
.
build
().
method
()).
isEqualTo
(
DELETE
);
builder
.
method
(
OPTIONS
);
...
...
@@ -127,18 +127,17 @@ public class DefaultClientRequestBuilderTests {
@Test
public
void
cookie
()
{
ClientRequest
result
=
ClientRequest
.
create
(
GET
,
URI
.
create
(
"https://example.com"
))
.
cookie
(
"foo"
,
"bar"
).
build
();
ClientRequest
result
=
ClientRequest
.
create
(
GET
,
DEFAULT_URL
).
cookie
(
"foo"
,
"bar"
).
build
();
assertThat
(
result
.
cookies
().
getFirst
(
"foo"
)).
isEqualTo
(
"bar"
);
}
@Test
public
void
build
()
{
ClientRequest
result
=
ClientRequest
.
create
(
GET
,
URI
.
create
(
"https://example.com"
)
)
ClientRequest
result
=
ClientRequest
.
create
(
GET
,
DEFAULT_URL
)
.
header
(
"MyKey"
,
"MyValue"
)
.
cookie
(
"foo"
,
"bar"
)
.
httpRequest
(
request
->
{
MockClientHttpRequest
nativeRequest
=
(
MockClientHttpRequest
)
request
.
getNativeRequest
();
MockClientHttpRequest
nativeRequest
=
request
.
getNativeRequest
();
nativeRequest
.
getHeaders
().
add
(
"MyKey2"
,
"MyValue2"
);
})
.
build
();
...
...
@@ -158,16 +157,14 @@ public class DefaultClientRequestBuilderTests {
@Test
public
void
bodyInserter
()
{
String
body
=
"foo"
;
BodyInserter
<
String
,
ClientHttpRequest
>
inserter
=
(
response
,
strategies
)
->
{
byte
[]
bodyBytes
=
body
.
getBytes
(
UTF_8
);
DataBuffer
buffer
=
DefaultDataBufferFactory
.
sharedInstance
.
wrap
(
bodyBytes
);
BodyInserter
<
String
,
ClientHttpRequest
>
inserter
=
(
response
,
strategies
)
->
{
byte
[]
bodyBytes
=
body
.
getBytes
(
UTF_8
);
DataBuffer
buffer
=
DefaultDataBufferFactory
.
sharedInstance
.
wrap
(
bodyBytes
);
return
response
.
writeWith
(
Mono
.
just
(
buffer
));
};
return
response
.
writeWith
(
Mono
.
just
(
buffer
));
};
ClientRequest
result
=
ClientRequest
.
create
(
POST
,
URI
.
create
(
"https://example.com"
))
.
body
(
inserter
).
build
();
ClientRequest
result
=
ClientRequest
.
create
(
POST
,
DEFAULT_URL
).
body
(
inserter
).
build
();
List
<
HttpMessageWriter
<?>>
messageWriters
=
new
ArrayList
<>();
messageWriters
.
add
(
new
EncoderHttpMessageWriter
<>(
CharSequenceEncoder
.
allMimeTypes
()));
...
...
@@ -179,17 +176,14 @@ public class DefaultClientRequestBuilderTests {
result
.
writeTo
(
request
,
strategies
).
block
();
assertThat
(
request
.
getBody
()).
isNotNull
();
StepVerifier
.
create
(
request
.
getBody
())
.
expectNextCount
(
1
)
.
verifyComplete
();
StepVerifier
.
create
(
request
.
getBody
()).
expectNextCount
(
1
).
verifyComplete
();
}
@Test
public
void
bodyClass
()
{
String
body
=
"foo"
;
Publisher
<
String
>
publisher
=
Mono
.
just
(
body
);
ClientRequest
result
=
ClientRequest
.
create
(
POST
,
URI
.
create
(
"https://example.com"
))
.
body
(
publisher
,
String
.
class
).
build
();
ClientRequest
result
=
ClientRequest
.
create
(
POST
,
DEFAULT_URL
).
body
(
publisher
,
String
.
class
).
build
();
List
<
HttpMessageWriter
<?>>
messageWriters
=
new
ArrayList
<>();
messageWriters
.
add
(
new
EncoderHttpMessageWriter
<>(
CharSequenceEncoder
.
allMimeTypes
()));
...
...
@@ -201,9 +195,7 @@ public class DefaultClientRequestBuilderTests {
result
.
writeTo
(
request
,
strategies
).
block
();
assertThat
(
request
.
getBody
()).
isNotNull
();
StepVerifier
.
create
(
request
.
getBody
())
.
expectNextCount
(
1
)
.
verifyComplete
();
StepVerifier
.
create
(
request
.
getBody
()).
expectNextCount
(
1
).
verifyComplete
();
}
@Test
...
...
@@ -211,8 +203,7 @@ public class DefaultClientRequestBuilderTests {
String
body
=
"foo"
;
Publisher
<
String
>
publisher
=
Mono
.
just
(
body
);
ParameterizedTypeReference
<
String
>
typeReference
=
new
ParameterizedTypeReference
<
String
>()
{};
ClientRequest
result
=
ClientRequest
.
create
(
POST
,
URI
.
create
(
"https://example.com"
))
.
body
(
publisher
,
typeReference
).
build
();
ClientRequest
result
=
ClientRequest
.
create
(
POST
,
DEFAULT_URL
).
body
(
publisher
,
typeReference
).
build
();
List
<
HttpMessageWriter
<?>>
messageWriters
=
new
ArrayList
<>();
messageWriters
.
add
(
new
EncoderHttpMessageWriter
<>(
CharSequenceEncoder
.
allMimeTypes
()));
...
...
@@ -224,9 +215,7 @@ public class DefaultClientRequestBuilderTests {
result
.
writeTo
(
request
,
strategies
).
block
();
assertThat
(
request
.
getBody
()).
isNotNull
();
StepVerifier
.
create
(
request
.
getBody
())
.
expectNextCount
(
1
)
.
verifyComplete
();
StepVerifier
.
create
(
request
.
getBody
()).
expectNextCount
(
1
).
verifyComplete
();
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录