Skip to content

Commit b81d473

Browse files
committed
Add setCookie impl
1 parent 0e17a46 commit b81d473

File tree

4 files changed

+36
-0
lines changed

4 files changed

+36
-0
lines changed

src/AndroidClient/android/src/main/java/net/servicestack/client/JsonServiceClient.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.lang.reflect.Type;
1919
import java.net.CookieHandler;
2020
import java.net.CookieManager;
21+
import java.net.HttpCookie;
2122
import java.net.HttpURLConnection;
2223
import java.net.URL;
2324
import java.net.URLEncoder;
@@ -546,4 +547,18 @@ public HttpURLConnection delete(String path) {
546547
return createRequest(resolveUrl(path), HttpMethods.Delete, null, null);
547548
}
548549

550+
@Override
551+
public void setCookie(String name, String value) {
552+
setCookie(name, value, null);
553+
}
554+
555+
@Override
556+
public void setCookie(String name, String value, Long expiresInSecs) {
557+
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
558+
HttpCookie cookie = new HttpCookie(name, value);
559+
if (expiresInSecs != null){
560+
cookie.setMaxAge(expiresInSecs.longValue());
561+
}
562+
cookieManager.getCookieStore().getCookies().add(cookie);
563+
}
549564
}

src/AndroidClient/android/src/main/java/net/servicestack/client/ServiceClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,7 @@ public interface ServiceClient {
4444
<TResponse> TResponse delete(String path, Class responseType);
4545
<TResponse> TResponse delete(String path, Type responseType);
4646
HttpURLConnection delete(String path);
47+
48+
void setCookie(String name, String value);
49+
void setCookie(String name, String value, Long expiresInSecs);
4750
}

src/AndroidClient/client/src/main/java/net/servicestack/client/JsonServiceClient.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import java.lang.reflect.Type;
1919
import java.net.CookieHandler;
2020
import java.net.CookieManager;
21+
import java.net.HttpCookie;
2122
import java.net.HttpURLConnection;
2223
import java.net.URL;
2324
import java.net.URLEncoder;
@@ -546,4 +547,18 @@ public HttpURLConnection delete(String path) {
546547
return createRequest(resolveUrl(path), HttpMethods.Delete, null, null);
547548
}
548549

550+
@Override
551+
public void setCookie(String name, String value) {
552+
setCookie(name, value, null);
553+
}
554+
555+
@Override
556+
public void setCookie(String name, String value, Long expiresInSecs) {
557+
CookieManager cookieManager = (CookieManager) CookieHandler.getDefault();
558+
HttpCookie cookie = new HttpCookie(name, value);
559+
if (expiresInSecs != null){
560+
cookie.setMaxAge(expiresInSecs.longValue());
561+
}
562+
cookieManager.getCookieStore().getCookies().add(cookie);
563+
}
549564
}

src/AndroidClient/client/src/main/java/net/servicestack/client/ServiceClient.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,4 +44,7 @@ public interface ServiceClient {
4444
<TResponse> TResponse delete(String path, Class responseType);
4545
<TResponse> TResponse delete(String path, Type responseType);
4646
HttpURLConnection delete(String path);
47+
48+
void setCookie(String name, String value);
49+
void setCookie(String name, String value, Long expiresInSecs);
4750
}

0 commit comments

Comments
 (0)