Toggle navigation
Toggle navigation
This project
Loading...
Sign in
flutter_package
/
fluttertpc_get
Go to a project
Toggle navigation
Projects
Groups
Snippets
Help
Toggle navigation pinning
Project
Activity
Repository
Pipelines
Graphs
Issues
0
Merge Requests
0
Wiki
Network
Create a new issue
Builds
Commits
Authored by
kevin.zhang
2021-05-18 09:51:00 +0800
Browse Files
Options
Browse Files
Download
Email Patches
Plain Diff
Commit
405c8ba68987e559a20fafd8d465fd63a96aae49
405c8ba6
1 parent
8e39d90c
fix: #1428
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
39 additions
and
7 deletions
lib/get_connect/http/src/http.dart
lib/get_connect/http/src/interceptors/get_modifiers.dart
lib/get_connect/http/src/request/request.dart
lib/get_connect/http/src/http.dart
View file @
405c8ba
...
...
@@ -192,11 +192,11 @@ class GetHttpClient {
});
if
(
authenticate
)
await
_modifier
.
authenticator
!(
request
);
await
_modifier
.
modifyRequest
(
request
);
final
newRequest
=
await
_modifier
.
modifyRequest
<
T
>
(
request
);
var
response
=
await
_httpClient
.
send
<
T
>(
r
equest
);
var
response
=
await
_httpClient
.
send
<
T
>(
newR
equest
);
await
_modifier
.
modifyResponse
(
r
equest
,
response
);
await
_modifier
.
modifyResponse
(
newR
equest
,
response
);
if
(
HttpStatus
.
unauthorized
==
response
.
statusCode
&&
_modifier
.
authenticator
!=
null
&&
...
...
@@ -205,14 +205,14 @@ class GetHttpClient {
handler
,
authenticate:
true
,
requestNumber:
requestNumber
+
1
,
headers:
r
equest
.
headers
,
headers:
newR
equest
.
headers
,
);
}
else
if
(
HttpStatus
.
unauthorized
==
response
.
statusCode
)
{
if
(!
errorSafety
)
{
throw
UnauthorizedException
();
}
else
{
return
Response
<
T
>(
request:
r
equest
,
request:
newR
equest
,
headers:
response
.
headers
,
statusCode:
response
.
statusCode
,
body:
response
.
body
,
...
...
lib/get_connect/http/src/interceptors/get_modifiers.dart
View file @
405c8ba
...
...
@@ -31,12 +31,15 @@ class GetModifier<T> {
_requestModifiers
.
remove
(
interceptor
);
}
Future
<
void
>
modifyRequest
(
Request
request
)
async
{
Future
<
Request
<
T
>>
modifyRequest
<
T
>(
Request
<
T
>
request
)
async
{
var
newRequest
=
request
;
if
(
_requestModifiers
.
isNotEmpty
)
{
for
(
var
interceptor
in
_requestModifiers
)
{
await
interceptor
(
request
)
;
newRequest
=
await
interceptor
(
newRequest
)
as
Request
<
T
>
;
}
}
return
newRequest
;
}
Future
<
void
>
modifyResponse
(
Request
request
,
Response
response
)
async
{
...
...
lib/get_connect/http/src/request/request.dart
View file @
405c8ba
...
...
@@ -74,6 +74,35 @@ class Request<T> {
decoder:
decoder
,
);
}
Request
copyWith
({
required
Uri
url
,
required
String
method
,
required
Map
<
String
,
String
>
headers
,
Stream
<
List
<
int
>>?
bodyBytes
,
bool
followRedirects
=
true
,
int
maxRedirects
=
4
,
int
?
contentLength
,
FormData
?
files
,
bool
persistentConnection
=
true
,
Decoder
<
T
>?
decoder
,
})
{
if
(
followRedirects
)
{
assert
(
maxRedirects
>
0
);
}
return
Request
.
_
(
url:
url
,
method:
method
,
bodyBytes:
bodyBytes
??=
BodyBytesStream
.
fromBytes
(
const
[]),
headers:
Map
.
from
(
headers
),
followRedirects:
followRedirects
,
maxRedirects:
maxRedirects
,
contentLength:
contentLength
,
files:
files
,
persistentConnection:
persistentConnection
,
decoder:
decoder
,
);
}
}
extension
BodyBytesStream
on
Stream
<
List
<
int
>>
{
...
...
Please
register
or
login
to post a comment