트위스트를 사용하는 웹 클라이언트 애플리케이션을 만들려고하지만 쿠키에 문제가 있습니다. 누구든지 내가 볼 수있는 모범을 보았습니까?twisted.web.client와 쿠키 사용하기
3
A
답변
2
는 웹 페이지를 다시 당겨 설계된 기능입니다 쉬운 AFAICT 헤더가 twisted.web.client.HTTPClientFactory에 저장되는 방식하지만 twisted.web.client.getPage에서 사용할 수 없습니다()가 없다 밝혀졌습니다. 이 getPage
쉽게 (getPage
슈퍼 멋진 API 아닌 방법의 한 예를) 요청 또는 응답 헤더에 직접 액세스를 허용하지 않는 것을 사실이지만, 쿠키가
from twisted.web import client
def getPage(url, contextFactory=None, *args, **kwargs):
fact = client._makeGetterFactory(
url,
HTTPClientFactory,
contextFactory=contextFactory,
*args, **kwargs)
return fact.deferred.addCallback(lambda data: (data, fact.response_headers))
7
: 나는 기능을 다시 작성 결국 실제로 지원됩니다.
cookies = {cookies: tosend}
d = getPage(url, cookies=cookies)
def cbPage(result):
print 'Look at my cookies:', cookies
d.addCallback(cbPage)
getPage
으로 전달 된 사전의 쿠키가 전송됩니다. 요청에 대한 응답으로 서버가 설정 한 모든 새 쿠키가 사전에 추가됩니다.
getPage
서명에 cookies
매개 변수가 없으므로 getPage
을보고 싶을 때이 기능을 놓칠 수 있습니다. 그러나 **kwargs
을 사용하며 cookies
이 지원됩니다. 추가 인수는 getPage
에 전달되어 자체에 대해 알지 못하면 HTTPClientFactory.__init__
으로 전달됩니다. 이 메소드의 서명을보고 getPage
에 전달할 수있는 모든 것을 확인하십시오.
1
from twisted.internet import reactor
from twisted.web import client
def getPage(url, contextFactory=None, *args, **kwargs):
return client._makeGetterFactory(
url,
CustomHTTPClientFactory,
contextFactory=contextFactory,
*args, **kwargs).deferred
class CustomHTTPClientFactory(client.HTTPClientFactory):
def __init__(self,url, method='GET', postdata=None, headers=None,
agent="Twisted PageGetter", timeout=0, cookies=None,
followRedirect=1, redirectLimit=20):
client.HTTPClientFactory.__init__(self, url, method, postdata,
headers, agent, timeout, cookies,
followRedirect, redirectLimit)
def page(self, page):
if self.waiting:
self.waiting = 0
res = {}
res['page'] = page
res['headers'] = self.response_headers
res['cookies'] = self.cookies
self.deferred.callback(res)
if __name__ == '__main__':
def cback(result):
for k in result:
print k, '==>', result[k]
reactor.stop()
def eback(error):
print error.getTraceback()
reactor.stop()
d = getPage('http://example.com', agent='example web client',
cookies={ 'some' : 'cookie' })
d.addCallback(cback)
d.addErrback(eback)
reactor.run()
관련 문제
- 1. 쿠키 이름에 괄호 사용하기 (레일즈)
- 2. 세션 쿠키 = 쿠키?
- 3. 쿠키
- 4. 쿠키
- 5. 쿠키
- 6. 쿠키
- 7. 쿠키 사전을 직렬화 하시겠습니까?
- 8. asp 쿠키 대 javascript 쿠키
- 9. jQuery 쿠키 플러그인으로 쿠키 설정하기?
- 10. Kohana의 요청 쿠키(), 응답 쿠키() 및 쿠키 클래스의 차이점은 무엇입니까?
- 11. iPhone 쿠키 관리
- 12. OpenSSL 쿠키 지원
- 13. jquery 쿠키 플러그인 또는 PHP 쿠키?
- 14. 자바 스크립트 쿠키 대 PHP 쿠키
- 15. 레일이 달린 Jquery 쿠키 (쿠키 유지)
- 16. 서버 쿠키?
- 17. 처리 쿠키
- 18. 영구 쿠키
- 19. Scriptonly 쿠키?
- 20. 쿠키 대신
- 21. PHP 쿠키
- 22. C : 쿠키
- 23. 중복 쿠키
- 24. 쿠키 만료
- 25. HttpContext 쿠키
- 26. 스누피와 쿠키
- 27. urllib와 쿠키
- 28. 쿠키 ASP.net
- 29. 자바의 쿠키
- 30. 장기 쿠키
답변 중 하나를 수락 하시겠습니까? –