summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleg Pudeyev <code@olegp.name>2021-07-20 15:39:35 -0400
committerOleg Pudeyev <code@olegp.name>2021-07-20 15:39:35 -0400
commitfd1ca232d2f6670a700a4125133138a1073a673b (patch)
tree92cef71995578d61204293d56910b9ae8a9c2642
parent66b83f89110dba0182d2a0cc3ca78be825d67f68 (diff)
downloadpycurl-fd1ca232d2f6670a700a4125133138a1073a673b.tar.gz
add head method to high-level interface, closes #547
-rw-r--r--python/curl/__init__.py7
-rw-r--r--tests/high_level_curl_test.py9
2 files changed, 16 insertions, 0 deletions
diff --git a/python/curl/__init__.py b/python/curl/__init__.py
index 977f3aa..187913b 100644
--- a/python/curl/__init__.py
+++ b/python/curl/__init__.py
@@ -100,6 +100,13 @@ class Curl:
self.set_option(pycurl.HTTPGET, 1)
return self.__request(url)
+ def head(self, url="", params=None):
+ "Ship a HEAD request for a specified URL, capture the response."
+ if params:
+ url += "?" + urllib_parse.urlencode(params)
+ self.set_option(pycurl.NOBODY, 1)
+ return self.__request(url)
+
def post(self, cgi, params):
"Ship a POST request to a specified CGI, capture the response."
self.set_option(pycurl.POST, 1)
diff --git a/tests/high_level_curl_test.py b/tests/high_level_curl_test.py
index 3dce1b3..ce3e250 100644
--- a/tests/high_level_curl_test.py
+++ b/tests/high_level_curl_test.py
@@ -18,6 +18,15 @@ class RelativeUrlTest(unittest.TestCase):
def tearDown(self):
self.curl.close()
+ def test_get(self):
+ result = self.curl.get('/success')
+ self.assertEqual('success', result.decode())
+
+ def test_head(self):
+ result = self.curl.head('/success')
+ self.assertEqual('', result.decode())
+ self.assertEqual(200, self.curl.info()['http-code'])
+
def test_reuse(self):
result = self.curl.get('/success')
self.assertEqual('success', result.decode())