2
2
3
3
import static org .asynchttpclient .Dsl .*;
4
4
import static org .testng .Assert .assertEquals ;
5
+ import static org .testng .Assert .assertNull ;
5
6
6
7
import java .io .IOException ;
7
8
import java .util .concurrent .TimeUnit ;
16
17
import org .asynchttpclient .filter .ResponseFilter ;
17
18
import org .eclipse .jetty .server .Request ;
18
19
import org .eclipse .jetty .server .handler .AbstractHandler ;
20
+ import org .testng .annotations .BeforeMethod ;
19
21
import org .testng .annotations .Test ;
20
22
21
23
public class RedirectBodyTest extends AbstractBasicTest {
22
24
25
+ private String receivedContentType ;
26
+
27
+ @ BeforeMethod
28
+ public void setUp () throws Exception {
29
+ receivedContentType = null ;
30
+ }
31
+
23
32
@ Override
24
33
public AbstractHandler configureHandler () throws Exception {
25
34
return new AbstractHandler () {
@@ -41,6 +50,7 @@ public void handle(String pathInContext, Request request, HttpServletRequest htt
41
50
IOUtils .read (request .getInputStream (), buffer );
42
51
httpResponse .getOutputStream ().write (buffer );
43
52
}
53
+ receivedContentType = request .getContentType ();
44
54
}
45
55
httpResponse .getOutputStream ().flush ();
46
56
httpResponse .getOutputStream ().close ();
@@ -60,39 +70,47 @@ public <T> FilterContext<T> filter(FilterContext<T> ctx) throws FilterException
60
70
public void regular301LosesBody () throws Exception {
61
71
try (AsyncHttpClient c = asyncHttpClient (config ().setFollowRedirect (true ).addResponseFilter (redirectOnce ))) {
62
72
String body = "hello there" ;
73
+ String contentType = "text/plain" ;
63
74
64
- Response response = c .preparePost (getTargetUrl ()).setBody (body ).setHeader ("X-REDIRECT" , "301" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
75
+ Response response = c .preparePost (getTargetUrl ()).setHeader ( "Content-Type" , contentType ). setBody (body ).setHeader ("X-REDIRECT" , "301" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
65
76
assertEquals (response .getResponseBody (), "" );
77
+ assertNull (receivedContentType );
66
78
}
67
79
}
68
80
69
81
@ Test (groups = "standalone" )
70
82
public void regular302LosesBody () throws Exception {
71
83
try (AsyncHttpClient c = asyncHttpClient (config ().setFollowRedirect (true ).addResponseFilter (redirectOnce ))) {
72
84
String body = "hello there" ;
85
+ String contentType = "text/plain" ;
73
86
74
- Response response = c .preparePost (getTargetUrl ()).setBody (body ).setHeader ("X-REDIRECT" , "302" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
87
+ Response response = c .preparePost (getTargetUrl ()).setHeader ( "Content-Type" , contentType ). setBody (body ).setHeader ("X-REDIRECT" , "302" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
75
88
assertEquals (response .getResponseBody (), "" );
89
+ assertNull (receivedContentType );
76
90
}
77
91
}
78
92
79
93
@ Test (groups = "standalone" )
80
94
public void regular302StrictKeepsBody () throws Exception {
81
95
try (AsyncHttpClient c = asyncHttpClient (config ().setFollowRedirect (true ).setStrict302Handling (true ).addResponseFilter (redirectOnce ))) {
82
96
String body = "hello there" ;
97
+ String contentType = "text/plain" ;
83
98
84
- Response response = c .preparePost (getTargetUrl ()).setBody (body ).setHeader ("X-REDIRECT" , "302" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
99
+ Response response = c .preparePost (getTargetUrl ()).setHeader ( "Content-Type" , contentType ). setBody (body ).setHeader ("X-REDIRECT" , "302" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
85
100
assertEquals (response .getResponseBody (), body );
101
+ assertEquals (receivedContentType , contentType );
86
102
}
87
103
}
88
104
89
105
@ Test (groups = "standalone" )
90
106
public void regular307KeepsBody () throws Exception {
91
107
try (AsyncHttpClient c = asyncHttpClient (config ().setFollowRedirect (true ).addResponseFilter (redirectOnce ))) {
92
108
String body = "hello there" ;
109
+ String contentType = "text/plain" ;
93
110
94
- Response response = c .preparePost (getTargetUrl ()).setBody (body ).setHeader ("X-REDIRECT" , "307" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
111
+ Response response = c .preparePost (getTargetUrl ()).setHeader ( "Content-Type" , contentType ). setBody (body ).setHeader ("X-REDIRECT" , "307" ).execute ().get (TIMEOUT , TimeUnit .SECONDS );
95
112
assertEquals (response .getResponseBody (), body );
113
+ assertEquals (receivedContentType , contentType );
96
114
}
97
115
}
98
116
}
0 commit comments