diff --git a/pom.xml b/pom.xml
index becd0bd..cd1f135 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
space.theself
fyers-java
- 1.0.1
+ 1.0.2
space.theself:fyers-java
@@ -47,7 +47,7 @@
maven-javadoc-plugin
2.9.1
- ${java.home}/../bin/javadoc
+ ${java.home}/bin/javadoc
diff --git a/src/main/java/trade/theself/fyers/FyersFly.java b/src/main/java/trade/theself/fyers/FyersFly.java
index 4848c12..be2a197 100644
--- a/src/main/java/trade/theself/fyers/FyersFly.java
+++ b/src/main/java/trade/theself/fyers/FyersFly.java
@@ -134,11 +134,11 @@ public String generateAccessToken(String authCode) throws LoginException {
try {
CloseableHttpResponse response = client.execute(httpPost);
- client.close();
InputStream is = response.getEntity().getContent();
StringBuffer sb = new StringBuffer();
byte[] allBytes = ByteStreams.toByteArray(is);
is.close();
+ client.close();
sb.append(new String(allBytes, StandardCharsets.US_ASCII));
JsonElement jsonElement = jsonParser.parse(sb.toString());
this.accessToken = jsonElement.getAsJsonObject().get("access_token").getAsString();
diff --git a/src/main/java/trade/theself/fyers/boilerplate/LoginHandler.java b/src/main/java/trade/theself/fyers/boilerplate/LoginHandler.java
index ccb8118..a868f45 100755
--- a/src/main/java/trade/theself/fyers/boilerplate/LoginHandler.java
+++ b/src/main/java/trade/theself/fyers/boilerplate/LoginHandler.java
@@ -6,6 +6,8 @@
import java.net.URI;
import java.net.URISyntaxException;
import java.nio.charset.Charset;
+import java.util.ArrayList;
+import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang3.StringUtils;
@@ -39,7 +41,7 @@ public class LoginHandler {
private String clientCode = StringUtils.EMPTY;
private String redirectUrl = StringUtils.EMPTY;
private String state = "sample_state";
-
+ private boolean enableHeadless = true;
/**
* Login to the portal through browser path.. This could break if Fyers decide to update their UI
* @param clientId - Client ID of the user
@@ -67,15 +69,17 @@ public String login(String clientId, String otp, String totp) throws LoginExcept
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
- options.addArguments(
- "--headless",
- "--disable-gpu",
- "--ignore-certificate-errors",
- "--disable-extensions",
- "--no-sandbox",
- "--disable-dev-shm-usage",
- "--incognito");
-
+ List argList = new ArrayList<>();
+ argList.add("--disable-gpu");
+ argList.add("--ignore-certificate-errors");
+ argList.add("--disable-extensions");
+ argList.add("--no-sandbox");
+ argList.add("--disable-dev-shm-usage");
+ argList.add("--incognito");
+ if(enableHeadless)
+ argList.add("--headless");
+ options.addArguments(argList);
+
WebDriver driver = new ChromeDriver(options);
WebDriverWait wait = new WebDriverWait(driver, 30);
driver.get(loginUrl);
@@ -158,8 +162,10 @@ public String login(String clientId, String otp, String totp) throws LoginExcept
try {
List params = URLEncodedUtils.parse(new URI(currentUrl), Charset.forName("UTF-8"));
for (NameValuePair param : params) {
- if(param.getName().equals("auth_code"))
+ if(param.getName().equals("auth_code")) {
authCode = param.getValue();
+ break;
+ }
}
} catch (URISyntaxException e) {
throw new LoginException(e.getMessage());
@@ -214,4 +220,10 @@ public void setState(String state) {
this.state = state;
}
+ /**
+ * Method primarily to disable headless mode in case any browser related debugging is required.
+ * @param state
+ */
+ public void setEnableHeadless(boolean state) { this.enableHeadless = state;}
+
}