diff options
author | Oleg Pudeyev <code@olegp.name> | 2021-07-20 15:39:35 -0400 |
---|---|---|
committer | Oleg Pudeyev <code@olegp.name> | 2021-07-20 15:39:35 -0400 |
commit | fd1ca232d2f6670a700a4125133138a1073a673b (patch) | |
tree | 92cef71995578d61204293d56910b9ae8a9c2642 | |
parent | 66b83f89110dba0182d2a0cc3ca78be825d67f68 (diff) | |
download | pycurl-fd1ca232d2f6670a700a4125133138a1073a673b.tar.gz |
add head method to high-level interface, closes #547
-rw-r--r-- | python/curl/__init__.py | 7 | ||||
-rw-r--r-- | tests/high_level_curl_test.py | 9 |
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()) |