diff --git a/curl.bqn b/curl.bqn index 4533f00..a2a0963 100644 --- a/curl.bqn +++ b/curl.bqn @@ -116,8 +116,8 @@ SetTimeoutms←{timeoutms 𝕊 session: # Use a POST method and set data to post SetData←{data 𝕊 session: "setting up POST request"Check EasySetoptLong⟨session.sessionPtr,curlOptions.post,1⟩ - "setting POST data"Check EasySetoptStr⟨session.sessionPtr,curlOptions.postfields,data⟩ "setting POST data size"Check EasySetoptLong⟨session.sessionPtr,curlOptions.postfieldsize,≠data⟩ + "copying POST data"Check EasySetoptStr⟨session.sessionPtr,curlOptions.copypostfields,data⟩ session } diff --git a/ffi.bqn b/ffi.bqn index ce3aeae..6d40c46 100644 --- a/ffi.bqn +++ b/ffi.bqn @@ -74,6 +74,7 @@ curlOptions←{ writedata⇐ptrOffset+1 # FILE* in which to write response content postfields⇐ptrOffset+15 # pointer to POST input data headerdata⇐ptrOffset+29 # FILE* in which to write response headers + copypostfields⇐ptrOffset+165 # copy POST input data # linked list options httpHeader⇐slistOffset+23 # HTTP headers as a list of strings diff --git a/tests.bqn b/tests.bqn index 73db3fa..b866dd2 100755 --- a/tests.bqn +++ b/tests.bqn @@ -36,14 +36,14 @@ simpleAPI_testsuite←⟨ }, "simple POST with headers"‿{𝕊𝕩: headers←⟨"Content-Type: application/json"⟩ - r←headers Post ⟨httpbinURL∾"/post","{""key"": ""value""}"⟩ + r←headers Post ⟨httpbinURL∾"/post",¯1000 + 1000 + "{""key"": 1}"⟩ ! 200=r.code ! 0=r.redirectCount ! 1=⊑"HTTP/"⍷r.headers ! 1=+´"Content-Type: "⍷r.headers ! 1=+´"Content-Length: "⍷r.headers ! 1=+´"""Content-Type"": ""application/json"""⍷r.content - ! 1=+´"""data"": ""{\""key\"": \""value\""}"""⍷r.content + ! 1=+´"""data"": ""{\""key\"": 1}"""⍷ r.content } ⟩