Build a urllib2 request object This function automatically adds a User-Agent header to all requests
(url, data=None, headers=None, bump='0', secure=False)
| 689 | |
| 690 | |
| 691 | def build_request(url, data=None, headers=None, bump='0', secure=False): |
| 692 | """Build a urllib2 request object |
| 693 | |
| 694 | This function automatically adds a User-Agent header to all requests |
| 695 | |
| 696 | """ |
| 697 | |
| 698 | if not headers: |
| 699 | headers = {} |
| 700 | |
| 701 | if url[0] == ':': |
| 702 | scheme = ('http', 'https')[bool(secure)] |
| 703 | schemed_url = '%s%s' % (scheme, url) |
| 704 | else: |
| 705 | schemed_url = url |
| 706 | |
| 707 | if '?' in url: |
| 708 | delim = '&' |
| 709 | else: |
| 710 | delim = '?' |
| 711 | |
| 712 | # WHO YOU GONNA CALL? CACHE BUSTERS! |
| 713 | final_url = '%s%sx=%s.%s' % (schemed_url, delim, |
| 714 | int(timeit.time.time() * 1000), |
| 715 | bump) |
| 716 | |
| 717 | headers.update({ |
| 718 | 'Cache-Control': 'no-cache', |
| 719 | }) |
| 720 | |
| 721 | printer('%s %s' % (('GET', 'POST')[bool(data)], final_url), |
| 722 | debug=True) |
| 723 | |
| 724 | return Request(final_url, data=data, headers=headers) |
| 725 | |
| 726 | |
| 727 | def catch_request(request, opener=None): |
no test coverage detected