From 6c77a65a3b28a7bf8201e21afa750b49c26441bd Mon Sep 17 00:00:00 2001 From: Adrien Nguyen Date: Wed, 8 Sep 2021 18:54:46 +0200 Subject: [PATCH] Fix http client config --- KinanCity-mail/pom.xml | 7 ++++++- .../mail/mailchanger/DirectEmailChanger.java | 16 ++++++++++++---- .../java/com/kinancity/mail/proxy/HttpProxy.java | 14 ++++++++++++++ 3 files changed, 32 insertions(+), 5 deletions(-) diff --git a/KinanCity-mail/pom.xml b/KinanCity-mail/pom.xml index 6524be0..8826fd4 100644 --- a/KinanCity-mail/pom.xml +++ b/KinanCity-mail/pom.xml @@ -32,7 +32,12 @@ com.squareup.okhttp3 okhttp - 3.6.0 + 4.9.1 + + + com.squareup.okhttp3 + logging-interceptor + 4.9.1 diff --git a/KinanCity-mail/src/main/java/com/kinancity/mail/mailchanger/DirectEmailChanger.java b/KinanCity-mail/src/main/java/com/kinancity/mail/mailchanger/DirectEmailChanger.java index 9afa9e1..e070903 100644 --- a/KinanCity-mail/src/main/java/com/kinancity/mail/mailchanger/DirectEmailChanger.java +++ b/KinanCity-mail/src/main/java/com/kinancity/mail/mailchanger/DirectEmailChanger.java @@ -7,6 +7,7 @@ import com.kinancity.mail.mailchanger.password.PasswordProvider; import com.kinancity.mail.proxy.HttpProxy; import okhttp3.*; +import okhttp3.logging.HttpLoggingInterceptor; import org.jsoup.Jsoup; import org.jsoup.nodes.Document; import org.jsoup.select.Elements; @@ -34,9 +35,15 @@ public class DirectEmailChanger implements EmailChanger{ private SaveAllCookieJar cookieJar; + private HttpLoggingInterceptor logging; + + private HttpLoggingInterceptor.Level logginLevel = HttpLoggingInterceptor.Level.BODY; + public DirectEmailChanger(PasswordProvider passwordProvider) { cookieJar = new SaveAllCookieJar(); - this.client = new OkHttpClient.Builder().cookieJar(cookieJar).build(); + logging = new HttpLoggingInterceptor(); + logging.setLevel(logginLevel); + this.client = new OkHttpClient.Builder().cookieJar(cookieJar).addInterceptor(logging).build(); this.passwordProvider = passwordProvider; } @@ -89,6 +96,7 @@ public boolean acceptChange(EmailChangeRequest emailChangeRequest) { Request acceptRequest = new Request.Builder() .header(MailConstants.HEADER_USER_AGENT, MailConstants.CHROME_USER_AGENT) + .header("ContentType", "application/x-www-form-urlencoded") .header("Origin", "https://club.pokemon.com") .header("referer", emailChangeRequest.getLink()) .url(emailChangeRequest.getLink()) @@ -106,7 +114,8 @@ public boolean acceptChange(EmailChangeRequest emailChangeRequest) { FileLogger.logStatus(emailChangeRequest, FileLogger.OK); return true; } else { - logger.info("Email Change FAILED"); + logger.info("Email Change FAILED. Missing success message"); + FileLogger.logStatus(emailChangeRequest, FileLogger.ERROR); return false; } @@ -120,7 +129,6 @@ public boolean acceptChange(EmailChangeRequest emailChangeRequest) { } else { logger.error("Mail Change failed : Failed to call PTC"); - logger.error("Mail Change Response : " + response.toString()); FileLogger.logStatus(emailChangeRequest, FileLogger.ERROR); return false; } @@ -156,7 +164,7 @@ private String getField(Document doc, String fieldName) throws MailChangerExcept public void setHttpProxy(HttpProxy httpProxy) { this.proxy = httpProxy; - this.client = httpProxy.getClient(); + this.client = httpProxy.getClient(cookieJar, logging); } } diff --git a/KinanCity-mail/src/main/java/com/kinancity/mail/proxy/HttpProxy.java b/KinanCity-mail/src/main/java/com/kinancity/mail/proxy/HttpProxy.java index 97131de..09ea707 100644 --- a/KinanCity-mail/src/main/java/com/kinancity/mail/proxy/HttpProxy.java +++ b/KinanCity-mail/src/main/java/com/kinancity/mail/proxy/HttpProxy.java @@ -13,6 +13,8 @@ import java.util.regex.Matcher; import java.util.regex.Pattern; +import okhttp3.CookieJar; +import okhttp3.Interceptor; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -187,6 +189,10 @@ public HttpProxy(String host, int port) { } public OkHttpClient getClient() { + return getClient(null, null); + } + + public OkHttpClient getClient(CookieJar cookieJar, Interceptor interceptor) { Builder clientBuilder = new OkHttpClient.Builder(); // TimeOuts @@ -201,6 +207,14 @@ public OkHttpClient getClient() { clientBuilder.proxyAuthenticator(new ProxyBasicAuthenticator(login, pass)); } + if (cookieJar != null){ + clientBuilder.cookieJar(cookieJar); + } + + if (interceptor != null){ + clientBuilder.addInterceptor(interceptor); + } + return clientBuilder.build(); }