(url, agent, etag, modified, referrer, auth, request_headers)
| 3052 | return url |
| 3053 | |
| 3054 | def _build_urllib2_request(url, agent, etag, modified, referrer, auth, request_headers): |
| 3055 | request = urllib2.Request(url) |
| 3056 | request.add_header('User-Agent', agent) |
| 3057 | if etag: |
| 3058 | request.add_header('If-None-Match', etag) |
| 3059 | if isinstance(modified, basestring): |
| 3060 | modified = _parse_date(modified) |
| 3061 | elif isinstance(modified, datetime.datetime): |
| 3062 | modified = modified.utctimetuple() |
| 3063 | if modified: |
| 3064 | # format into an RFC 1123-compliant timestamp. We can't use |
| 3065 | # time.strftime() since the %a and %b directives can be affected |
| 3066 | # by the current locale, but RFC 2616 states that dates must be |
| 3067 | # in English. |
| 3068 | short_weekdays = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] |
| 3069 | months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'] |
| 3070 | request.add_header('If-Modified-Since', '%s, %02d %s %04d %02d:%02d:%02d GMT' % (short_weekdays[modified[6]], modified[2], months[modified[1] - 1], modified[0], modified[3], modified[4], modified[5])) |
| 3071 | if referrer: |
| 3072 | request.add_header('Referer', referrer) |
| 3073 | if gzip and zlib: |
| 3074 | request.add_header('Accept-encoding', 'gzip, deflate') |
| 3075 | elif gzip: |
| 3076 | request.add_header('Accept-encoding', 'gzip') |
| 3077 | elif zlib: |
| 3078 | request.add_header('Accept-encoding', 'deflate') |
| 3079 | else: |
| 3080 | request.add_header('Accept-encoding', '') |
| 3081 | if auth: |
| 3082 | request.add_header('Authorization', 'Basic %s' % auth) |
| 3083 | if ACCEPT_HEADER: |
| 3084 | request.add_header('Accept', ACCEPT_HEADER) |
| 3085 | # use this for whatever -- cookies, special headers, etc |
| 3086 | # [('Cookie','Something'),('x-special-header','Another Value')] |
| 3087 | for header_name, header_value in request_headers.items(): |
| 3088 | request.add_header(header_name, header_value) |
| 3089 | request.add_header('A-IM', 'feed') # RFC 3229 support |
| 3090 | return request |
| 3091 | |
| 3092 | _date_handlers = [] |
| 3093 | def registerDateHandler(func): |
no test coverage detected
searching dependent graphs…