I need to replicate the below API call in Robot Framework:
curl -X POST "http://xyz/api/createApp" -H "Content-Type:application/json" -d @/tmp/testfile.json
testfile.json has a json payload. I cannot send the content of Json file as body.
I have imported the HTTP libraries. But do not see any key-word to make an API call with file.
http://bulkan.github.io/robotframework-requests/#Post has files parameter. And what you could do is use
Get File
keyword from OperatingSystem library and pass that to your Post keyword.It perfectly works when using double backslashes and quotes like:
curl -i -H 'Accept: application/json' -H 'Content-Type: application/json' -X POST -d "{\"target\" : \"5142221345\",\"source\" : \"432567890\",\"messages\" : [ { \"format\" : \"AMR\", \"data\" : \"binarydata...\" } ]}" http://10.4.4.11:8089/v1/voice/add
Bulkan's robotframework-requests is nice. But if you can get by with less, you can do your own local lib/posthttp.py in a few lines like this:
Note that the return object is the rich-and-powerful "Response" which has member functions like
.json()
(which returns a dict if the.text
is sensed to be JSON) and.status_code
(int).