Check-in [8f5515beb8]
Overview
| Comment: | Fix POST requests to use data= instead of params=, else would turn into GET-style parameters. Add extra debugging (commented out). |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
8f5515beb8dda4eaf1af22e75eea395c |
| User & Date: | mario on 2015-09-10 19:09:38 |
| Other Links: | manifest | tags |
Context
|
2015-11-08
| ||
| 14:00 | Reenable logging for `timer` module (seems non-functional ATM). check-in: 7ac004fc6d user: mario tags: trunk | |
|
2015-09-10
| ||
| 19:09 | Fix POST requests to use data= instead of params=, else would turn into GET-style parameters. Add extra debugging (commented out). check-in: 8f5515beb8 user: mario tags: trunk | |
| 19:08 | Fix https:// URL prefix, to avoid extraneous redirects. Add referer=1, ajax=1 to all GET/POST requests. More readable extraction (rx/pq) callback. check-in: 976c41ca3a user: mario tags: trunk | |
Changes
Modified ahttp.py from [f0736abd2b] to [c85e234893].
| ︙ | ︙ | |||
13 14 15 16 17 18 19 20 21 22 23 24 25 26 | # And can normalize URLs to always carry a trailing slash # after the domain name. from config import * import requests #-- hooks to progress meter and status bar in main window feedback = None # Sets either text or percentage of main windows' status bar. # # Can either take a float parameter (e.g. 0.99 for % indicator) | > > > > > > > > > > | 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# And can normalize URLs to always carry a trailing slash
# after the domain name.
from config import *
import requests
#-- extra debugging, http://stackoverflow.com/questions/10588644/how-can-i-see-the-entire-http-request-thats-being-sent-by-my-python-application
if conf.debug >= 2:
import logging
import httplib
httplib.HTTPConnection.debuglevel = 1
logging.basicConfig()
logging.getLogger().setLevel(logging.DEBUG)
requests_log = logging.getLogger("requests.packages.urllib3")
requests_log.setLevel(logging.DEBUG)
requests_log.propagate = True
#-- hooks to progress meter and status bar in main window
feedback = None
# Sets either text or percentage of main windows' status bar.
#
# Can either take a float parameter (e.g. 0.99 for % indicator)
|
| ︙ | ︙ | |||
51 52 53 54 55 56 57 | #-- Retrieve data via HTTP # # Well, it says "get", but it actually does POST and AJAXish GET requests too. # def get( | | | | | 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 |
#-- Retrieve data via HTTP
#
# Well, it says "get", but it actually does POST and AJAXish GET requests too.
#
def get(
url, params={}, referer=None, post=0, ajax=0,
binary=0, content=True, encoding=None, verify=False,
statusmsg=None, timeout=9.25, quieter=0
):
# statusbar info
if not quieter:
progress_feedback(url, timeout=timeout/1.5)
# combine headers
headers = {}
if ajax:
headers["X-Requested-With"] = "XMLHttpRequest"
if referer:
headers["Referer"] = (referer if referer not in [True, 1] else url)
#ifdef BLD_DEBUG
#srcout raise Exception("Simulated HTTP error")
#endif
# read
if post:
log.HTTP("POST", url, params)
r = session.post(url, data=params, headers=headers, timeout=timeout)
else:
log.HTTP("GET"+(" AJAX" if ajax else ""), url, params )
r = session.get(url, params=params, headers=headers, verify=verify, timeout=timeout)
if not quieter:
log.HTTP(">>>", r.request.headers );
log.HTTP("<<<", r.headers );
|
| ︙ | ︙ |