2010-06-09 2 views
0

:0.5.0/HttpClient를 내가 여기 지침에 따라 시도하고

System.setProperty("HTTPClient.cookies.save","true") 
System.setProperty("HTTPClient.cookies.jar","/home/misha/.httpclient_cookies") 

하지 않는 내가 HTTP 빌더, 다음 줄을 사용하고있는 경우, http://www.innovation.ch/java/HTTPClient/advanced_info.html

그러나 파일을 만드는 것처럼 보입니다.

~/.httpclient_cookies 

나는 언제나 해결책을 제시 할 것입니다.

:

미샤

답변

0

는 HttpClient를 사용하면 연결 한 것을이 HTTPBuilder 그루비와 함께 번들 년대 아파치 HttpClient를 동일하지 않습니다. apache HTTPClient를 사용하여 쿠키를 유지하려면 this documentation을 확인하십시오.

0

감사합니다. 나는 hackier 솔루션을 갔다 ...

#!/usr/bin/env groovy 

import com.gargoylesoftware.htmlunit.WebClient 

import static groovyx.net.http.Method.GET 
import static groovyx.net.http.ContentType.TEXT 

import java.io.File 

import org.apache.http.impl.cookie.BasicClientCookie 

class HTTPBuilder extends groovyx.net.http.HTTPBuilder { 

/** 
    * Load cookies from specified file 
    */ 
    def loadCookies(file) { 
    file.withObjectInputStream { ois-> 
     ois.readObject().each { cookieMap-> 
    def cookie=new BasicClientCookie(cookieMap.name,cookieMap.value) 
    cookieMap.remove("name") 
    cookieMap.remove("value") 
    cookieMap.entrySet().each { entry-> 
     cookie."${entry.key}"=entry.value 
    } 
    client.cookieStore.addCookie(cookie) 
    println cookie 
     } 
    } 
    } 

    /** 
    * Save cookies to specified file 
    */ 
    def saveCookies(file) { 
    def cookieMaps=new ArrayList(new LinkedHashMap()) 
    client.cookieStore.getCookies().each { cookie-> 
     def cookieMap=[:] 
     cookieMap.version=cookie.version 
     cookieMap.name=cookie.name 
     cookieMap.value=cookie.value 
     cookieMap.domain=cookie.domain 
     cookieMap.path=cookie.path 
     cookieMap.expiryDate=cookie.expiryDate 
     cookieMaps.add(cookieMap) 
     println cookie 
    } 
    file.withObjectOutputStream { oos-> 
     oos.writeObject(cookieMaps) 
    } 
    } 

을 ...

} 
관련 문제