2017-02-26 131 views
2

我想一個cookie添加到Web客戶端,該代碼按預期工作GAE之外:如何將Cookie添加到的HtmlUnit Web客戶端上GAE

WebClient webClient = new WebClient(CHROME); 
webClient.addCookie("storepath=us/en", new URL("http://www.zara.com/"), null); 

但在GAE它拋出:

java.lang.IllegalArgumentException: Port may not be negative 
    at org.apache.http.util.Args.notNegative(Args.java:115) 
    at org.apache.http.cookie.CookieOrigin.<init>(CookieOrigin.java:52) 
    at com.gargoylesoftware.htmlunit.CookieManager.buildCookieOrigin(CookieManager.java:102) 
    at com.gargoylesoftware.htmlunit.WebClient.addCookie(WebClient.java:2258) 

如何在GAE上添加此cookie?

+0

你能提供'新的URL的輸出( 「http://www.zara.com/」).getDefaultPort()'在GAE? –

+0

@AhmedAshour -1 –

+0

我不明白爲什麼它被設置爲-1 –

回答

1

對此有一個GAE bug,可能你應該在那裏創建一個新的,因爲它的根本原因仍然存在。

要解決它,你可以使用:

CookieManager cookieManager = new CookieManager() { 
    protected int getPort(URL url) { 

     // or deduct it from url.getProtocol() 
     return 80; 
    } 
}; 
webClient.setCookieManager(cookieManager);