Skip to content

Commit 3fe65c3

Browse files
author
Igor Polevoy
committed
#498 Add followRedirect() method to JavaLite HTTP
1 parent c352393 commit 3fe65c3

File tree

6 files changed

+18
-2
lines changed

6 files changed

+18
-2
lines changed

javalite-common/src/main/java/org/javalite/http/Delete.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public Delete doConnect() {
3939
try {
4040
connection.setDoOutput(true);
4141
connection.setRequestMethod("DELETE");
42+
connection.setInstanceFollowRedirects(redirect);
4243
connection.connect();
4344
return this;
4445
} catch (Exception e) {

javalite-common/src/main/java/org/javalite/http/Get.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public Get doConnect() {
4040
try {
4141
connection.setDoInput(true);
4242
connection.setDoOutput(true);
43+
connection.setInstanceFollowRedirects(redirect);
4344
connection.setUseCaches(false);
4445
connection.setRequestMethod("GET");
4546
return this;
@@ -49,8 +50,7 @@ public Get doConnect() {
4950
}
5051

5152
public static void main(String[] args) {
52-
53-
Get get = Http.get("http://localhost:8080/manager/html").basic("tomcat", "tomcat");
53+
Get get = Http.get("https://www.yahoo.com");
5454
System.out.println(get.text());
5555
System.out.println(get.headers());
5656
System.out.println(get.responseCode());

javalite-common/src/main/java/org/javalite/http/Multipart.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ protected Multipart doConnect() {
3737
connection.setDoOutput(true); // indicates POST method
3838
connection.setDoInput(true);
3939
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
40+
connection.setInstanceFollowRedirects(redirect);
4041
outputStream = connection.getOutputStream();
4142
writer = new PrintWriter(new OutputStreamWriter(outputStream), true);
4243
sendData();

javalite-common/src/main/java/org/javalite/http/Post.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,7 @@ public Post doConnect() {
5656
connection.setDoOutput(true);
5757
connection.setUseCaches(false);
5858
connection.setRequestMethod("POST");
59+
connection.setInstanceFollowRedirects(redirect);
5960

6061
if(params.size() > 0){
6162
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");

javalite-common/src/main/java/org/javalite/http/Put.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public Put doConnect() {
4646
connection.setDoOutput(true);
4747
connection.setDoInput(true);
4848
connection.setRequestMethod("PUT");
49+
connection.setInstanceFollowRedirects(redirect);
4950
OutputStream os = connection.getOutputStream();
5051
os.write(content);
5152
os.flush();

javalite-common/src/main/java/org/javalite/http/Request.java

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ public abstract class Request<T extends Request> {
3535

3636
protected final HttpURLConnection connection;
3737
private boolean connected;
38+
protected boolean redirect = false;
3839
protected final String url;
3940

4041
public Request(String url, int connectTimeout, int readTimeout) {
@@ -61,6 +62,17 @@ public T header(String name, String value) {
6162
return (T) this;
6263
}
6364

65+
/**
66+
* Configures this request to follow redirects. Default is <code>false</code>.
67+
*
68+
* @see https://docs.oracle.com/javase/7/docs/api/java/net/HttpURLConnection.html#instanceFollowRedirects
69+
* @param redirect true to follow, false to not.
70+
* @return self
71+
*/
72+
public T redirect(boolean redirect) {
73+
this.redirect = redirect;
74+
return (T) this;
75+
}
6476

6577
/**
6678
* Returns input stream to read server response from.

0 commit comments

Comments
 (0)