Python pycurl.WRITEFUNCTION Examples
The following are 30
code examples of pycurl.WRITEFUNCTION().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
pycurl
, or try the search function
.
Example #1
Source File: smgr_monitoring.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(self, server_ip, port): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/%s" % (server_ip, port, 'MonitorInfo') args_str = '' conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.HTTPGET, 1) conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() data_dict = response.getvalue() data_dict = dict(json.loads(data_dict)) data_list = list(data_dict["__ServerMonitoringInfoTrace_list"]["ServerMonitoringInfoTrace"]) return data_list except Exception as e: print "Error is: " + str(e) return None # end def send_REST_request
Example #2
Source File: hub.py From robot with MIT License | 6 votes |
def generate_curl(self, url=None, headers=None): """ 生成一个curl, 返回 curl 实例和用于获取结果的 buffer """ curl = pycurl.Curl() buff = StringIO() curl.setopt(pycurl.COOKIEFILE, "cookie") curl.setopt(pycurl.COOKIEJAR, "cookie_jar") curl.setopt(pycurl.SHARE, self.http._share) curl.setopt(pycurl.WRITEFUNCTION, buff.write) curl.setopt(pycurl.FOLLOWLOCATION, 1) curl.setopt(pycurl.MAXREDIRS, 5) curl.setopt(pycurl.TIMEOUT, 3) curl.setopt(pycurl.CONNECTTIMEOUT, 3) if url: curl.setopt(pycurl.URL, url) if headers: self.set_curl_headers(curl, headers) return curl, buff
Example #3
Source File: test_fetch.py From landscape-client with GNU General Public License v2.0 | 6 votes |
def test_pycurl_insecure(self): curl = CurlStub(b"result") result = fetch("http://example.com/get-ca-cert", curl=curl, insecure=True) self.assertEqual(result, b"result") self.assertEqual(curl.options, {pycurl.URL: b"http://example.com/get-ca-cert", pycurl.FOLLOWLOCATION: 1, pycurl.MAXREDIRS: 5, pycurl.CONNECTTIMEOUT: 30, pycurl.LOW_SPEED_LIMIT: 1, pycurl.LOW_SPEED_TIME: 600, pycurl.NOSIGNAL: 1, pycurl.WRITEFUNCTION: Any(), pycurl.SSL_VERIFYPEER: False, pycurl.DNS_CACHE_TIMEOUT: 0, pycurl.ENCODING: b"gzip,deflate"})
Example #4
Source File: test_fetch.py From landscape-client with GNU General Public License v2.0 | 6 votes |
def test_timeouts(self): curl = CurlStub(b"result") result = fetch("http://example.com", connect_timeout=5, total_timeout=30, curl=curl) self.assertEqual(result, b"result") self.assertEqual(curl.options, {pycurl.URL: b"http://example.com", pycurl.FOLLOWLOCATION: 1, pycurl.MAXREDIRS: 5, pycurl.CONNECTTIMEOUT: 5, pycurl.LOW_SPEED_LIMIT: 1, pycurl.LOW_SPEED_TIME: 30, pycurl.NOSIGNAL: 1, pycurl.WRITEFUNCTION: Any(), pycurl.DNS_CACHE_TIMEOUT: 0, pycurl.ENCODING: b"gzip,deflate"})
Example #5
Source File: test_fetch.py From landscape-client with GNU General Public License v2.0 | 6 votes |
def test_cainfo(self): curl = CurlStub(b"result") result = fetch("https://example.com", cainfo="cainfo", curl=curl) self.assertEqual(result, b"result") self.assertEqual(curl.options, {pycurl.URL: b"https://example.com", pycurl.FOLLOWLOCATION: 1, pycurl.MAXREDIRS: 5, pycurl.CONNECTTIMEOUT: 30, pycurl.LOW_SPEED_LIMIT: 1, pycurl.LOW_SPEED_TIME: 600, pycurl.NOSIGNAL: 1, pycurl.WRITEFUNCTION: Any(), pycurl.CAINFO: b"cainfo", pycurl.DNS_CACHE_TIMEOUT: 0, pycurl.ENCODING: b"gzip,deflate"})
Example #6
Source File: test_fetch.py From landscape-client with GNU General Public License v2.0 | 6 votes |
def test_post_data(self): curl = CurlStub(b"result") result = fetch("http://example.com", post=True, data="data", curl=curl) self.assertEqual(result, b"result") self.assertEqual(curl.options[pycurl.READFUNCTION](), b"data") self.assertEqual(curl.options, {pycurl.URL: b"http://example.com", pycurl.FOLLOWLOCATION: 1, pycurl.MAXREDIRS: 5, pycurl.CONNECTTIMEOUT: 30, pycurl.LOW_SPEED_LIMIT: 1, pycurl.LOW_SPEED_TIME: 600, pycurl.NOSIGNAL: 1, pycurl.WRITEFUNCTION: Any(), pycurl.POST: True, pycurl.POSTFIELDSIZE: 4, pycurl.READFUNCTION: Any(), pycurl.DNS_CACHE_TIMEOUT: 0, pycurl.ENCODING: b"gzip,deflate"})
Example #7
Source File: test_fetch.py From landscape-client with GNU General Public License v2.0 | 6 votes |
def test_post(self): curl = CurlStub(b"result") result = fetch("http://example.com", post=True, curl=curl) self.assertEqual(result, b"result") self.assertEqual(curl.options, {pycurl.URL: b"http://example.com", pycurl.FOLLOWLOCATION: 1, pycurl.MAXREDIRS: 5, pycurl.CONNECTTIMEOUT: 30, pycurl.LOW_SPEED_LIMIT: 1, pycurl.LOW_SPEED_TIME: 600, pycurl.NOSIGNAL: 1, pycurl.WRITEFUNCTION: Any(), pycurl.POST: True, pycurl.DNS_CACHE_TIMEOUT: 0, pycurl.ENCODING: b"gzip,deflate"})
Example #8
Source File: smgr_reimage_server.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, payload): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/server/reimage" %( ip, port) conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.POST, 1) conn.setopt(pycurl.POSTFIELDS, '%s'%json.dumps(payload)) conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None
Example #9
Source File: dahua_event.py From home-assistant-dahua-event with MIT License | 6 votes |
def __init__(self, hass, config): """Construct a thread listening for events.""" self.hass = hass for device_cfg in config: url = URL_TEMPLATE.format( protocol=device_cfg.get("protocol"), host=device_cfg.get("host"), port=device_cfg.get("port"), events=device_cfg.get("events") ) channels = device_cfg.get("channels") channels_dict = {} if channels is not None: for channel in channels: channels_dict[channel.get("number")] = channel.get("name") device = DahuaDevice(self, hass, device_cfg.get("name"), url, channels_dict) self.Devices.append(device) CurlObj = pycurl.Curl() device.CurlObj = CurlObj CurlObj.setopt(pycurl.URL, url) CurlObj.setopt(pycurl.CONNECTTIMEOUT, 30) CurlObj.setopt(pycurl.TCP_KEEPALIVE, 1) CurlObj.setopt(pycurl.TCP_KEEPIDLE, 30) CurlObj.setopt(pycurl.TCP_KEEPINTVL, 15) CurlObj.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_DIGEST) CurlObj.setopt(pycurl.USERPWD, "%s:%s" % (device_cfg.get("user"), device_cfg.get("password"))) CurlObj.setopt(pycurl.WRITEFUNCTION, device.OnReceive) self.CurlMultiObj.add_handle(CurlObj) self.NumCurlObjs += 1 _LOGGER.debug("Added Dahua device at: %s", url) threading.Thread.__init__(self) self.stopped = threading.Event()
Example #10
Source File: smgr_status.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, object, match_key, match_value, detail): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/%s" % (ip, port, object) args_str = '' if match_key: args_str += match_key + "=" + match_value if detail: args_str += "&detail" if args_str != '': url += "?" + args_str conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.HTTPGET, 1) conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None # end def send_REST_request
Example #11
Source File: reqresp.py From wfuzz with GNU General Public License v2.0 | 6 votes |
def head(self): conn=pycurl.Curl() conn.setopt(pycurl.SSL_VERIFYPEER,False) conn.setopt(pycurl.SSL_VERIFYHOST,1) conn.setopt(pycurl.URL,self.completeUrl) conn.setopt(pycurl.HEADER, True) # estas dos lineas son las que importan conn.setopt(pycurl.NOBODY, True) # para hacer un pedido HEAD conn.setopt(pycurl.WRITEFUNCTION, self.header_callback) conn.perform() rp=Response() rp.parseResponse(self.__performHead) self.response=rp
Example #12
Source File: torutil.py From onion-expose with BSD 3-Clause "New" or "Revised" License | 6 votes |
def _check_status(self): """ For internal use only. Only members of :class:`Tunnel` """ try: output = io.BytesIO() query = pycurl.Curl() query.setopt(pycurl.URL, "%s:%s" % (self.addr, self.status_server.port)) query.setopt(pycurl.PROXY, "127.0.0.1") query.setopt(pycurl.PROXYPORT, config.tor_proxy_port) query.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5_HOSTNAME) query.setopt(pycurl.WRITEFUNCTION, output.write) query.perform() return "ONIONGROK_CLIENT_STATUS_SUCCESS" in output.getvalue().decode("utf8") except Exception as e: return False
Example #13
Source File: smgr_provision_server.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, payload): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/server/provision" %( ip, port) conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.POST, 1) conn.setopt(pycurl.POSTFIELDS, '%s'%json.dumps(payload)) conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None
Example #14
Source File: client_usage_using_pycurl.py From stem with GNU Lesser General Public License v3.0 | 6 votes |
def query(url): """ Uses pycurl to fetch a site using the proxy on the SOCKS_PORT. """ output = io.BytesIO() query = pycurl.Curl() query.setopt(pycurl.URL, url) query.setopt(pycurl.PROXY, 'localhost') query.setopt(pycurl.PROXYPORT, SOCKS_PORT) query.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5_HOSTNAME) query.setopt(pycurl.WRITEFUNCTION, output.write) try: query.perform() return output.getvalue() except pycurl.error as exc: return "Unable to reach %s (%s)" % (url, exc) # Start an instance of Tor configured to only exit through Russia. This prints # Tor's bootstrap information as it starts. Note that this likely will not # work if you have another Tor instance running.
Example #15
Source File: custom_path_selection.py From stem with GNU Lesser General Public License v3.0 | 6 votes |
def query(url): """ Uses pycurl to fetch a site using the proxy on the SOCKS_PORT. """ output = StringIO.StringIO() query = pycurl.Curl() query.setopt(pycurl.URL, url) query.setopt(pycurl.PROXY, 'localhost') query.setopt(pycurl.PROXYPORT, SOCKS_PORT) query.setopt(pycurl.PROXYTYPE, pycurl.PROXYTYPE_SOCKS5_HOSTNAME) query.setopt(pycurl.CONNECTTIMEOUT, CONNECTION_TIMEOUT) query.setopt(pycurl.WRITEFUNCTION, output.write) try: query.perform() return output.getvalue() except pycurl.error as exc: raise ValueError("Unable to reach %s (%s)" % (url, exc))
Example #16
Source File: smgr_delete.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, object, key, value, force=False): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/%s?%s=%s" %( ip, port, object, urllib.quote_plus(key), urllib.quote_plus(value)) if force: url += "&force" conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.CUSTOMREQUEST, "delete") conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None # end def send_REST_request
Example #17
Source File: smgr_restart_server.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, payload): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/server/restart" %( ip, port) conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.POST, 1) conn.setopt(pycurl.POSTFIELDS, '%s'%json.dumps(payload)) conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None # end def send_REST_request
Example #18
Source File: smgr_upload_image.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, payload, file_name, kickstart='', kickseed=''): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/image/upload" %( ip, port) conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.POST, 1) payload["file"] = (pycurl.FORM_FILE, file_name) if kickstart: payload["kickstart"] = (pycurl.FORM_FILE, kickstart) if kickseed: payload["kickseed"] = (pycurl.FORM_FILE, kickseed) conn.setopt(pycurl.HTTPPOST, payload.items()) conn.setopt(pycurl.CUSTOMREQUEST, "PUT") conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None
Example #19
Source File: server_post_install.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(ip, port, object, payload): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/%s" %( ip, port, object) conn = pycurl.Curl() conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.POST, 1) conn.setopt(pycurl.POSTFIELDS, '%s'%json.dumps(payload)) conn.setopt(pycurl.CUSTOMREQUEST, "PUT") conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None
Example #20
Source File: sm_ansible_utils.py From contrail-server-manager with Apache License 2.0 | 6 votes |
def send_REST_request(self, ip, port, endpoint, payload, method='POST', urlencode=False): try: response = StringIO() headers = ["Content-Type:application/json"] url = "http://%s:%s/%s" %(ip, port, endpoint) conn = pycurl.Curl() if method == "PUT": conn.setopt(pycurl.CUSTOMREQUEST, method) if urlencode == False: first = True for k,v in payload.iteritems(): if first: url = url + '?' first = False else: url = url + '&' url = url + ("%s=%s" % (k,v)) else: url = url + '?' + payload if self.logger: self.logger.log(self.logger.INFO, "Sending post request to %s" % url) conn.setopt(pycurl.URL, url) conn.setopt(pycurl.HTTPHEADER, headers) conn.setopt(pycurl.POST, 1) if urlencode == False: conn.setopt(pycurl.POSTFIELDS, '%s'%json.dumps(payload)) conn.setopt(pycurl.WRITEFUNCTION, response.write) conn.perform() return response.getvalue() except: return None
Example #21
Source File: test_helpers.py From the-new-hotness with GNU Lesser General Public License v2.1 | 5 votes |
def test_secure_download_no_cainfo(self): import pycurl import io # Required mocks mock_curl_instance = Mock() mock_stringio_instance = Mock() mock_stringio_instance.getvalue.return_value = "mock StringIO value" mock_stringio_instance.getvalue.return_value = "mock StringIO value" expected_setopt_calls = [ call(pycurl.URL, b"https://example.com/file.extension"), call(pycurl.SSL_VERIFYPEER, 1), call(pycurl.SSL_VERIFYHOST, 2), call(pycurl.WRITEFUNCTION, mock_stringio_instance.write), call(pycurl.FOLLOWLOCATION, 1), call(pycurl.MAXREDIRS, 10), ] with patch.object(pycurl, "Curl") as mock_curl_constructor: with patch.object(io, "StringIO") as mock_stringio_constructor: mock_curl_constructor.return_value = mock_curl_instance mock_stringio_constructor.return_value = mock_stringio_instance secure_download_result = helpers.secure_download( "https://example.com/file.extension" ) # Check curl calls mock_curl_instance.setopt.assert_has_calls(expected_setopt_calls) mock_curl_instance.perform.assert_called_once_with() mock_curl_instance.close.assert_called_once_with() # Check StringIO call mock_stringio_instance.getvalue.assert_called_once_with() self.assertEqual(secure_download_result, "mock StringIO value")
Example #22
Source File: test_helpers.py From the-new-hotness with GNU Lesser General Public License v2.1 | 5 votes |
def test_get_html_http_no_callbacks(self): import pycurl import io # Test http with no callbacks mock_curl_instance = Mock() mock_stringio_instance = Mock() mock_stringio_instance.getvalue.return_value = "mock StringIO value" # Expected pycurl setopt calls expected_setopt_calls = [ call(pycurl.URL, b"https://example.com/file.extension"), call(pycurl.WRITEFUNCTION, mock_stringio_instance.write), call(pycurl.FOLLOWLOCATION, 1), call(pycurl.MAXREDIRS, 10), call( pycurl.USERAGENT, "Fedora Upstream Release Monitoring " "(https://fedoraproject.org/wiki/Upstream_release_monitoring)", ), call(pycurl.CONNECTTIMEOUT, 10), call(pycurl.TIMEOUT, 30), ] with patch.object(pycurl, "Curl") as mock_curl_constructor: with patch.object(io, "StringIO") as mock_stringio_constructor: mock_curl_constructor.return_value = mock_curl_instance mock_stringio_constructor.return_value = mock_stringio_instance get_html_result = helpers.get_html("https://example.com/file.extension") # Check curl calls mock_curl_instance.setopt.assert_has_calls(expected_setopt_calls) mock_curl_instance.perform.assert_called_once_with() mock_curl_instance.close.assert_called_once_with() self.assertEqual(get_html_result, "mock StringIO value")
Example #23
Source File: test_helpers.py From the-new-hotness with GNU Lesser General Public License v2.1 | 5 votes |
def test_secure_download(self): import pycurl import io # Required mocks mock_curl_instance = Mock() mock_stringio_instance = Mock() mock_stringio_instance.getvalue.return_value = "mock StringIO value" # Expected pycurl setopt calls expected_setopt_calls = [ call(pycurl.URL, b"https://example.com/file.extension"), call(pycurl.SSL_VERIFYPEER, 1), call(pycurl.SSL_VERIFYHOST, 2), call(pycurl.CAINFO, "/etc/certs/cabundle.pem"), call(pycurl.WRITEFUNCTION, mock_stringio_instance.write), call(pycurl.FOLLOWLOCATION, 1), call(pycurl.MAXREDIRS, 10), ] with patch.object(pycurl, "Curl") as mock_curl_constructor: with patch.object(io, "StringIO") as mock_stringio_constructor: mock_curl_constructor.return_value = mock_curl_instance mock_stringio_constructor.return_value = mock_stringio_instance secure_download_result = helpers.secure_download( "https://example.com/file.extension", "/etc/certs/cabundle.pem" ) # Check curl calls mock_curl_instance.setopt.assert_has_calls(expected_setopt_calls) mock_curl_instance.perform.assert_called_once_with() mock_curl_instance.close.assert_called_once_with() # Check StringIO call mock_stringio_instance.getvalue.assert_called_once_with() self.assertEqual(secure_download_result, "mock StringIO value")
Example #24
Source File: test_bagofrequests.py From pyaem with MIT License | 5 votes |
def test_upload_file(self): curl = pycurl.Curl() curl.setopt = MagicMock() curl.perform = MagicMock() curl.getinfo = MagicMock(return_value=200) curl.close = MagicMock() pycurl.Curl = MagicMock(return_value=curl) url = 'http://localhost:4502/.cqactions.html' params = {'foo1': 'bar1', 'foo2': 'bar2'} handlers = {200: self._handler_dummy} result = pyaem.bagofrequests.upload_file(url, params, handlers, file='/tmp/somefile') curl.setopt.assert_any_call(pycurl.POST, 1) curl.setopt.assert_any_call(pycurl.HTTPPOST, [('foo1', 'bar1'), ('foo2', 'bar2')]) curl.setopt.assert_any_call(pycurl.URL, 'http://localhost:4502/.cqactions.html') curl.setopt.assert_any_call(pycurl.FOLLOWLOCATION, 1) curl.setopt.assert_any_call(pycurl.FRESH_CONNECT, 1) # 6 calls including the one with pycurl.WRITEFUNCTION self.assertEqual(curl.setopt.call_count, 6) curl.perform.assert_called_once_with() curl.getinfo.assert_called_once_with(pycurl.HTTP_CODE) curl.close.assert_called_once_with() self.assertEqual(result.is_success(), True) self.assertEqual(result.message, 'some dummy message') self.assertEqual(result.response['request']['method'], 'post') self.assertEqual(result.response['request']['url'], 'http://localhost:4502/.cqactions.html') self.assertEqual(result.response['request']['params'], params)
Example #25
Source File: CleanScraper.py From CleanScrape with MIT License | 5 votes |
def get_url (url, user_agent=UA, referrer=None): """Make a GET request of the url using pycurl and return the data (which is None if unsuccessful)""" data = None databuffer = StringIO() curl = pycurl.Curl() curl.setopt(pycurl.URL, url) curl.setopt(pycurl.FOLLOWLOCATION, 1) curl.setopt(pycurl.CONNECTTIMEOUT, 5) curl.setopt(pycurl.TIMEOUT, 8) curl.setopt(pycurl.WRITEFUNCTION, databuffer.write) curl.setopt(pycurl.COOKIEFILE, '') if user_agent: curl.setopt(pycurl.USERAGENT, user_agent) if referrer is not None: curl.setopt(pycurl.REFERER, referrer) try: curl.perform() data = databuffer.getvalue() except Exception: pass curl.close() return data
Example #26
Source File: toolClass.py From Video-Downloader with GNU General Public License v2.0 | 5 votes |
def getPage (self, url, requestHeader = []) : resultFormate = StringIO.StringIO() fakeIp = self.fakeIp() requestHeader.append('CLIENT-IP:' + fakeIp) requestHeader.append('X-FORWARDED-FOR:' + fakeIp) try: curl = pycurl.Curl() curl.setopt(pycurl.URL, url.strip()) curl.setopt(pycurl.ENCODING, 'gzip,deflate') curl.setopt(pycurl.HEADER, 1) curl.setopt(pycurl.TIMEOUT, 120) curl.setopt(pycurl.SSL_VERIFYPEER, 0) curl.setopt(pycurl.SSL_VERIFYHOST, 0) curl.setopt(pycurl.HTTPHEADER, requestHeader) curl.setopt(pycurl.WRITEFUNCTION, resultFormate.write) curl.perform() headerSize = curl.getinfo(pycurl.HEADER_SIZE) curl.close() header = resultFormate.getvalue()[0 : headerSize].split('\r\n') body = resultFormate.getvalue()[headerSize : ] except Exception, e: header = '' body = ''
Example #27
Source File: transport.py From termite-visualizations with BSD 3-Clause "New" or "Revised" License | 5 votes |
def request(self, url, method, body, headers): c = pycurl.Curl() c.setopt(pycurl.URL, str(url)) if 'proxy_host' in self.proxy: c.setopt(pycurl.PROXY, self.proxy['proxy_host']) if 'proxy_port' in self.proxy: c.setopt(pycurl.PROXYPORT, self.proxy['proxy_port']) if 'proxy_user' in self.proxy: c.setopt(pycurl.PROXYUSERPWD, "%(proxy_user)s:%(proxy_pass)s" % self.proxy) self.buf = StringIO() c.setopt(pycurl.WRITEFUNCTION, self.buf.write) #c.setopt(pycurl.READFUNCTION, self.read) #self.body = StringIO(body) #c.setopt(pycurl.HEADERFUNCTION, self.header) if self.cacert: c.setopt(c.CAINFO, str(self.cacert)) c.setopt(pycurl.SSL_VERIFYPEER, self.cacert and 1 or 0) c.setopt(pycurl.SSL_VERIFYHOST, self.cacert and 2 or 0) c.setopt(pycurl.CONNECTTIMEOUT, self.timeout/6) c.setopt(pycurl.TIMEOUT, self.timeout) if method=='POST': c.setopt(pycurl.POST, 1) c.setopt(pycurl.POSTFIELDS, body) if headers: hdrs = ['%s: %s' % (str(k), str(v)) for k, v in headers.items()] ##print hdrs c.setopt(pycurl.HTTPHEADER, hdrs) c.perform() ##print "pycurl perform..." c.close() return {}, self.buf.getvalue()
Example #28
Source File: __init__.py From EventGhost with GNU General Public License v2.0 | 5 votes |
def __init__(self, base_url="", fakeheaders=[]): self.handle = pycurl.Curl() # These members might be set. self.set_url(base_url) self.verbosity = 0 self.fakeheaders = fakeheaders # Nothing past here should be modified by the caller. self.payload = None self.payload_io = BytesIO() self.hrd = "" # Verify that we've got the right site; harmless on a non-SSL connect. self.set_option(pycurl.SSL_VERIFYHOST, 2) # Follow redirects in case it wants to take us to a CGI... self.set_option(pycurl.FOLLOWLOCATION, 1) self.set_option(pycurl.MAXREDIRS, 5) self.set_option(pycurl.NOSIGNAL, 1) # Setting this option with even a nonexistent file makes libcurl # handle cookie capture and playback automatically. self.set_option(pycurl.COOKIEFILE, "/dev/null") # Set timeouts to avoid hanging too long self.set_timeout(30) # Use password identification from .netrc automatically self.set_option(pycurl.NETRC, 1) self.set_option(pycurl.WRITEFUNCTION, self.payload_io.write) def header_callback(x): self.hdr += x.decode('ascii') self.set_option(pycurl.HEADERFUNCTION, header_callback)
Example #29
Source File: test_bagofrequests.py From pyaem with MIT License | 5 votes |
def test_request_post(self): curl = pycurl.Curl() curl.setopt = MagicMock() curl.perform = MagicMock() curl.getinfo = MagicMock(return_value=200) curl.close = MagicMock() pycurl.Curl = MagicMock(return_value=curl) method = 'post' url = 'http://localhost:4502/.cqactions.html' params = {'foo1': 'bar1', 'foo2': ['bar2a', 'bar2b']} handlers = {200: self._handler_dummy} result = pyaem.bagofrequests.request(method, url, params, handlers) curl.setopt.assert_any_call(pycurl.POST, 1) curl.setopt.assert_any_call(pycurl.POSTFIELDS, 'foo1=bar1&foo2=bar2a&foo2=bar2b') curl.setopt.assert_any_call(pycurl.URL, 'http://localhost:4502/.cqactions.html') curl.setopt.assert_any_call(pycurl.FOLLOWLOCATION, 1) curl.setopt.assert_any_call(pycurl.FRESH_CONNECT, 1) # 6 calls including the one with pycurl.WRITEFUNCTION self.assertEqual(curl.setopt.call_count, 6) curl.perform.assert_called_once_with() curl.getinfo.assert_called_once_with(pycurl.HTTP_CODE) curl.close.assert_called_once_with() self.assertEqual(result.is_success(), True) self.assertEqual(result.message, 'some dummy message') self.assertEqual(result.response['request']['method'], 'post') self.assertEqual(result.response['request']['url'], 'http://localhost:4502/.cqactions.html') self.assertEqual(result.response['request']['params'], params)
Example #30
Source File: test_bagofrequests.py From pyaem with MIT License | 5 votes |
def test_request_get(self): curl = pycurl.Curl() curl.setopt = MagicMock() curl.perform = MagicMock() curl.getinfo = MagicMock(return_value=200) curl.close = MagicMock() pycurl.Curl = MagicMock(return_value=curl) method = 'get' url = 'http://localhost:4502/.cqactions.html' params = {'foo1': 'bar1', 'foo2': ['bar2a', 'bar2b']} handlers = {200: self._handler_dummy} result = pyaem.bagofrequests.request(method, url, params, handlers) curl.setopt.assert_any_call(pycurl.URL, 'http://localhost:4502/.cqactions.html?foo1=bar1&foo2=bar2a&foo2=bar2b') curl.setopt.assert_any_call(pycurl.FOLLOWLOCATION, 1) curl.setopt.assert_any_call(pycurl.FRESH_CONNECT, 1) # 4 calls including the one with pycurl.WRITEFUNCTION self.assertEqual(curl.setopt.call_count, 4) curl.perform.assert_called_once_with() curl.getinfo.assert_called_once_with(pycurl.HTTP_CODE) curl.close.assert_called_once_with() self.assertEqual(result.is_success(), True) self.assertEqual(result.message, 'some dummy message') self.assertEqual(result.response['request']['method'], 'get') self.assertEqual(result.response['request']['url'], 'http://localhost:4502/.cqactions.html?foo1=bar1&foo2=bar2a&foo2=bar2b') self.assertEqual(result.response['request']['params'], params)