http post ok
This commit is contained in:
parent
ce7b882956
commit
1f3a5f7f32
16
a8/curl.cc
16
a8/curl.cc
@ -15,9 +15,20 @@ namespace a8
|
|||||||
return size * nmemb;
|
return size * nmemb;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Post(const char* url, std::string& response)
|
bool Post(const char* url, const std::string& content, std::string& response, const char* headers)
|
||||||
{
|
{
|
||||||
return true;
|
CURL *curl = curl_easy_init();
|
||||||
|
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 10);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_URL, url);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_HEADER, 0);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_HTTPPOST, 1);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, content.c_str());
|
||||||
|
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, &_ReceiveResponse);
|
||||||
|
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
|
||||||
|
bool ok = curl_easy_perform(curl) == CURLE_OK;
|
||||||
|
curl_easy_cleanup(curl);
|
||||||
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Get(const std::string& url, std::string& response, int timeout=10)
|
bool Get(const std::string& url, std::string& response, int timeout=10)
|
||||||
@ -32,5 +43,6 @@ namespace a8
|
|||||||
curl_easy_cleanup(curl);
|
curl_easy_cleanup(curl);
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,8 @@ namespace a8
|
|||||||
{
|
{
|
||||||
namespace http
|
namespace http
|
||||||
{
|
{
|
||||||
bool Post(const char* url, std::string& response);
|
bool Post(const char* url, const std::string& content, std::string& response,
|
||||||
|
const char* headers = nullptr);
|
||||||
bool Get(const std::string& url, std::string& response, int timeout=10);
|
bool Get(const std::string& url, std::string& response, int timeout=10);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -250,6 +250,15 @@ namespace a8
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void XObject::ToUrlEncodeStr(std::string& data)
|
||||||
|
{
|
||||||
|
if (type_ == a8::XOT_OBJECT) {
|
||||||
|
for (auto& pair : *value_.object_value) {
|
||||||
|
data.append("&" + pair.first + "=" + a8::UrlEncode(pair.second->AsXValue().GetString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void XObject::JsonValueToXObject(Json::Value& json_val, a8::XObject& xobject)
|
void XObject::JsonValueToXObject(Json::Value& json_val, a8::XObject& xobject)
|
||||||
{
|
{
|
||||||
Json::ValueType val_type = json_val.type();
|
Json::ValueType val_type = json_val.type();
|
||||||
|
@ -43,6 +43,7 @@ namespace a8
|
|||||||
bool ReadFromXmlFile(const std::string& filename);
|
bool ReadFromXmlFile(const std::string& filename);
|
||||||
bool ReadFromXmlString(const std::string& xmldata);
|
bool ReadFromXmlString(const std::string& xmldata);
|
||||||
void ToJsonStr(std::string& data);
|
void ToJsonStr(std::string& data);
|
||||||
|
void ToUrlEncodeStr(std::string& data);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void JsonValueToXObject(Json::Value& json_val, a8::XObject& xobject);
|
void JsonValueToXObject(Json::Value& json_val, a8::XObject& xobject);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user