esim.esp2: Allow HTTP methods other than POST

While all official/standardized ES2+ API functions use POST, there
are some vendor-specific extensions using different HTTP methods.  Be
flexible enough to allow derived classes to easily specify other methods.

Change-Id: I4b1a0dc7e6662485397c7708933bf16e5ed56e10
diff --git a/pySim/esim/es2p.py b/pySim/esim/es2p.py
index af45b0b..fa21d2c 100644
--- a/pySim/esim/es2p.py
+++ b/pySim/esim/es2p.py
@@ -261,6 +261,8 @@
     output_mandatory = []
     # expected HTTP status code of the response
     expected_http_status = 200
+    # the HTTP method used (GET, OPTIONS, HEAD, POST, PUT, PATCH or DELETE)
+    http_method = 'POST'
 
     def __init__(self, url_prefix: str, func_req_id: str, session):
         self.url_prefix = url_prefix
@@ -326,7 +328,7 @@
         }
 
         logger.debug("HTTP REQ %s - '%s'" % (url, encoded))
-        response = self.session.post(url, data=encoded, headers=headers, timeout=timeout)
+        response = self.session.request(self.http_method, url, data=encoded, headers=headers, timeout=timeout)
         logger.debug("HTTP RSP-STS: [%u] hdr: %s" % (response.status_code, response.headers))
         logger.debug("HTTP RSP: %s" % (response.content))