diff --git a/README.md b/README.md
index ad7b1c10..ab5a12d7 100644
--- a/README.md
+++ b/README.md
@@ -29,6 +29,25 @@ RestClient::Response r = RestClient::put("http://url.com/put", "application/json
RestClient::Response r = RestClient::patch("http://url.com/patch", "application/json", "{\"foo\": \"bla\"}")
RestClient::Response r = RestClient::del("http://url.com/delete")
RestClient::Response r = RestClient::head("http://url.com")
+
+// Post Form Upload
+/* Filling information about the form in a RestClient::PostFormInfo object */
+RestClient::PostFormInfo uploadInfo;
+/* "submitted" is the name of the "file" input and "TestPostForm.txt"
+is the location of the file to submit.
+
+*/
+uploadInfo.addFormFile("submitted", "TestPostForm.txt");
+/* In some rare cases, some fields related to the form can be filled with
+addFormContent(), the 1st argument is the name of the input element and
+the 2nd argument is the value assigned to it.
+
+
+*/
+uploadInfo.addFormContent("filename", "myfile.cpp");
+uploadInfo.addFormContent("submit", "send");
+/* Performing a post form upload with the information provided above */
+RestClient::Response res = RestClient::postForm("http://posttestserver.com/post.php?dir=restclientcpptests", uploadInfo);
RestClient::Response r = RestClient::options("http://url.com")
```
diff --git a/include/restclient-cpp/connection.h b/include/restclient-cpp/connection.h
index df3423fb..7f512739 100644
--- a/include/restclient-cpp/connection.h
+++ b/include/restclient-cpp/connection.h
@@ -188,6 +188,8 @@ class Connection {
RestClient::Response get(const std::string& uri);
RestClient::Response post(const std::string& uri,
const std::string& data);
+ RestClient::Response postForm(const std::string& uri,
+ const PostFormInfo& data);
RestClient::Response put(const std::string& uri,
const std::string& data);
RestClient::Response patch(const std::string& uri,
diff --git a/include/restclient-cpp/helpers.h b/include/restclient-cpp/helpers.h
index 9078a267..035dbc85 100644
--- a/include/restclient-cpp/helpers.h
+++ b/include/restclient-cpp/helpers.h
@@ -9,6 +9,8 @@
#ifndef INCLUDE_RESTCLIENT_CPP_HELPERS_H_
#define INCLUDE_RESTCLIENT_CPP_HELPERS_H_
+#include
+
#include
#include
#include
diff --git a/include/restclient-cpp/restclient.h b/include/restclient-cpp/restclient.h
index a5542b2d..15297bc9 100644
--- a/include/restclient-cpp/restclient.h
+++ b/include/restclient-cpp/restclient.h
@@ -13,6 +13,7 @@
#include