mirror of
https://github.com/c-cube/ezcurl.git
synced 2025-12-06 03:05:31 -05:00
ezcurl: allow POST with non-form data
Currently ezcurl always sets CURLOPT_HTTPPOST, but that means it is not able to send a custom body that is not a form (e.g. JSON is quite a common use-case these days). Add a special case: if the POST params is empty, *and* a 'content' is set, then just set CURLOPT_POST, but not CURLOPT_HTTPPOST. Example usage: ``` let contents = Ezjsonm.to_string json in let config = EZ.Config.(verbose true default) in match EZ.post ~config ~url ~params:[] ~content:(`String contents) () with ``` Signed-off-by: Edwin Török <edwin.torok@cloud.com>
This commit is contained in:
parent
916f72fb39
commit
a92d7bbe4c
1 changed files with 2 additions and 0 deletions
|
|
@ -317,6 +317,8 @@ module Make(IO : IO)
|
||||||
let resp_headers_done = ref false in (* once we get "\r\n" header line *)
|
let resp_headers_done = ref false in (* once we get "\r\n" header line *)
|
||||||
Curl.set_url self url;
|
Curl.set_url self url;
|
||||||
begin match meth with
|
begin match meth with
|
||||||
|
| POST [] when (content <> None) ->
|
||||||
|
Curl.set_post self true
|
||||||
| POST l -> Curl.set_httppost self l;
|
| POST l -> Curl.set_httppost self l;
|
||||||
| GET -> Curl.set_httpget self true;
|
| GET -> Curl.set_httpget self true;
|
||||||
| PUT -> Curl.set_put self true;
|
| PUT -> Curl.set_put self true;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue