|
@@ -5,7 +5,7 @@
|
|
#include <fmt/format.h>
|
|
#include <fmt/format.h>
|
|
#include "Logger.h"
|
|
#include "Logger.h"
|
|
|
|
|
|
-CNetWork::CNetWork() : m_http_ret(HTTPRET::http_f)
|
|
|
|
|
|
+CNetWork::CNetWork() : m_http_ret(HTTPRET::http_f) , isHttpsError(false), isHttpS(false)
|
|
{
|
|
{
|
|
initSessionPool(100);
|
|
initSessionPool(100);
|
|
}
|
|
}
|
|
@@ -229,7 +229,7 @@ SStringA CNetWork::GetLastErrorA()
|
|
|
|
|
|
SStringW CNetWork::GetLastErrorW()
|
|
SStringW CNetWork::GetLastErrorW()
|
|
{
|
|
{
|
|
- return S_CA2W(m_error_msg.c_str(),CP_UTF8).GetBuffer(0);
|
|
|
|
|
|
+ return SStringW().Format(L"%s",S_CA2W(m_error_msg.c_str(),CP_UTF8)).GetBuffer(0);
|
|
}
|
|
}
|
|
|
|
|
|
std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> parame,std::string token)
|
|
std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> parame,std::string token)
|
|
@@ -261,7 +261,7 @@ std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> param
|
|
|
|
|
|
std::string res_test = "";
|
|
std::string res_test = "";
|
|
//auto session = GetSession();
|
|
//auto session = GetSession();
|
|
- int count = 3;
|
|
|
|
|
|
+ int count = 1;
|
|
/*int serverurlid = 0;*/
|
|
/*int serverurlid = 0;*/
|
|
do
|
|
do
|
|
{
|
|
{
|
|
@@ -269,13 +269,27 @@ std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> param
|
|
{
|
|
{
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
|
|
+ std::string https = "https://";
|
|
|
|
+ std::string http = "http://";
|
|
|
|
|
|
- auto s = fmt::format("{0}{1}", m_url, path.c_str());
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ std::string s = "";
|
|
|
|
+ if (isHttpS)
|
|
|
|
+ {
|
|
|
|
+ s = fmt::format("{0}{1}{2}", https, m_url, path.c_str());
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ s = fmt::format("{0}{1}{2}", http, m_url, path.c_str());
|
|
|
|
+ }
|
|
|
|
+ //auto s = fmt::format("{0}{1}", m_url, path.c_str());
|
|
|
|
+ Logger::getSingletonPtr()->DEBUG("当前访问的url: " + s);
|
|
if (parame.empty())
|
|
if (parame.empty())
|
|
{
|
|
{
|
|
m_session.SetHeader(hander);
|
|
m_session.SetHeader(hander);
|
|
- m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
|
|
+ if (isHttpS)
|
|
|
|
+ {
|
|
|
|
+ m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
+ }
|
|
m_session.SetTimeout(cpr::Timeout{TIMEOUTE});
|
|
m_session.SetTimeout(cpr::Timeout{TIMEOUTE});
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetUrl(s.c_str());
|
|
//session->SetDebugCallback()
|
|
//session->SetDebugCallback()
|
|
@@ -284,7 +298,10 @@ std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> param
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
m_session.SetHeader(hander);
|
|
m_session.SetHeader(hander);
|
|
- m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
|
|
+ if (isHttpS)
|
|
|
|
+ {
|
|
|
|
+ m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
+ }
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetParameters(ps);
|
|
m_session.SetParameters(ps);
|
|
@@ -326,8 +343,20 @@ std::string CNetWork::GetUrl(std::string path, std::vector<cpr::Parameter> param
|
|
|
|
|
|
std::string CNetWork::PostUrl(std::string path, std::vector<cpr::Pair> parame, std::string token)
|
|
std::string CNetWork::PostUrl(std::string path, std::vector<cpr::Pair> parame, std::string token)
|
|
{
|
|
{
|
|
- auto s = fmt::format("{0}{1}", m_url, path.c_str());
|
|
|
|
|
|
+ /*auto s = fmt::format("{0}{1}", m_url, path.c_str());*/
|
|
|
|
+ std::string https = "https://";
|
|
|
|
+ std::string http = "http://";
|
|
|
|
|
|
|
|
+
|
|
|
|
+ std::string s = "";
|
|
|
|
+ if (isHttpS)
|
|
|
|
+ {
|
|
|
|
+ s = fmt::format("{0}{1}{2}", https, m_url, path.c_str());
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ s = fmt::format("{0}{1}{2}", http, m_url, path.c_str());
|
|
|
|
+ }
|
|
|
|
+ Logger::getSingletonPtr()->DEBUG("当前访问的url: " + s);
|
|
cpr::Header hander;
|
|
cpr::Header hander;
|
|
|
|
|
|
if (!token.empty())
|
|
if (!token.empty())
|
|
@@ -351,7 +380,7 @@ std::string CNetWork::PostUrl(std::string path, std::vector<cpr::Pair> parame, s
|
|
*/
|
|
*/
|
|
|
|
|
|
|
|
|
|
- int count = 3;
|
|
|
|
|
|
+ int count = 1;
|
|
do
|
|
do
|
|
{
|
|
{
|
|
if (count <= 0)
|
|
if (count <= 0)
|
|
@@ -363,14 +392,21 @@ std::string CNetWork::PostUrl(std::string path, std::vector<cpr::Pair> parame, s
|
|
{
|
|
{
|
|
//r = cpr::Get(cpr::Url{ s.c_str() }, hander, cpr::VerifySsl{false}, cpr::Timeout{ 60 * 1000 });
|
|
//r = cpr::Get(cpr::Url{ s.c_str() }, hander, cpr::VerifySsl{false}, cpr::Timeout{ 60 * 1000 });
|
|
m_session.SetHeader(hander);
|
|
m_session.SetHeader(hander);
|
|
- m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
|
|
+ if (isHttpS)
|
|
|
|
+ {
|
|
|
|
+ m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
+ }
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetUrl(s.c_str());
|
|
r = m_session.Get();
|
|
r = m_session.Get();
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
m_session.SetHeader(hander);
|
|
m_session.SetHeader(hander);
|
|
- m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
|
|
+ if (isHttpS)
|
|
|
|
+ {
|
|
|
|
+ m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
+ }
|
|
|
|
+
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetPayload(cpr::Payload{ parame.begin(),parame.end() });
|
|
m_session.SetPayload(cpr::Payload{ parame.begin(),parame.end() });
|
|
@@ -431,10 +467,26 @@ void CNetWork::AutoToggleNode() {
|
|
//切换节点,
|
|
//切换节点,
|
|
for each (ServerListUrl itme in m_url_list)
|
|
for each (ServerListUrl itme in m_url_list)
|
|
{
|
|
{
|
|
|
|
+ isHttpS = itme.isHttps;
|
|
|
|
+ Logger::getSingletonPtr()->DEBUG("当前访问的域名" + itme.url);
|
|
|
|
+ std::string https = "https://";
|
|
|
|
+ std::string http = "http://";
|
|
|
|
+ std::string s = "";
|
|
|
|
+ if (itme.isHttps)
|
|
|
|
+ {
|
|
|
|
+ s = fmt::format("{0}{1}{2}",https, itme.url, "/api/client/v3/version");
|
|
|
|
+ }
|
|
|
|
+ else {
|
|
|
|
+ s = fmt::format("{0}{1}{2}", http, itme.url, "/api/client/v3/version");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Logger::getSingletonPtr()->DEBUG("当前访问的url: " + s);
|
|
cpr::Session m_session;
|
|
cpr::Session m_session;
|
|
- auto s = fmt::format("{0}{1}", itme.url, "/api/client/v3/version");
|
|
|
|
m_session.SetHeader(hander);
|
|
m_session.SetHeader(hander);
|
|
- m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{},cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
|
|
+ if (itme.isHttps)
|
|
|
|
+ {
|
|
|
|
+ m_session.SetOption(cpr::Ssl(cpr::ssl::TLSv1_1{}, cpr::ssl::TLSv1_2{}, cpr::ssl::TLSv1_3{}));
|
|
|
|
+ }
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetTimeout(cpr::Timeout{ TIMEOUTE });
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetUrl(s.c_str());
|
|
m_session.SetParameters(ps);
|
|
m_session.SetParameters(ps);
|
|
@@ -447,7 +499,7 @@ void CNetWork::AutoToggleNode() {
|
|
if (m_url != itme.url)
|
|
if (m_url != itme.url)
|
|
{
|
|
{
|
|
m_url = itme.url;
|
|
m_url = itme.url;
|
|
- Logger::getSingletonPtr()->INFO(S_CW2A(itme.name).GetBuffer(0));
|
|
|
|
|
|
+ Logger::getSingletonPtr()->DEBUG(S_CW2A(itme.name).GetBuffer(0));
|
|
}
|
|
}
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -526,24 +578,32 @@ std::string CNetWork::UpdateError(cpr::ErrorCode code, std::string msg)
|
|
{
|
|
{
|
|
if (code == cpr::ErrorCode::HOST_RESOLUTION_FAILURE)
|
|
if (code == cpr::ErrorCode::HOST_RESOLUTION_FAILURE)
|
|
{
|
|
{
|
|
- m_error_msg = "解析域名失败";
|
|
|
|
|
|
+ m_error_msg = "host resolution";
|
|
|
|
+ //m_error_msg = S_CA2A("解析域名失败", CP_UTF8).GetBuffer(0);
|
|
}
|
|
}
|
|
else if (code == cpr::ErrorCode::OPERATION_TIMEDOUT)
|
|
else if (code == cpr::ErrorCode::OPERATION_TIMEDOUT)
|
|
{
|
|
{
|
|
- m_error_msg = "请求数据超时,请重新请求";
|
|
|
|
|
|
+ m_error_msg = "url timeout";
|
|
|
|
+ //m_error_msg = S_CA2A("请求数据超时,请重新请求", CP_UTF8).GetBuffer(0);
|
|
}
|
|
}
|
|
else if (code == cpr::ErrorCode::CONNECTION_FAILURE) {
|
|
else if (code == cpr::ErrorCode::CONNECTION_FAILURE) {
|
|
- m_error_msg = "发送服务器失败";
|
|
|
|
|
|
+ m_error_msg = "connection url falure";
|
|
|
|
+ //m_error_msg = S_CA2A("发送服务器失败", CP_UTF8).GetBuffer(0);
|
|
}
|
|
}
|
|
else if (code == cpr::ErrorCode::INVALID_URL_FORMAT) {
|
|
else if (code == cpr::ErrorCode::INVALID_URL_FORMAT) {
|
|
- m_error_msg = "未知URL错误";
|
|
|
|
|
|
+ m_error_msg = "url host invalid";
|
|
|
|
+ //m_error_msg = S_CA2A("未知URL错误", CP_UTF8).GetBuffer(0);
|
|
|
|
|
|
} else if (code == cpr::ErrorCode::SSL_CONNECT_ERROR)
|
|
} else if (code == cpr::ErrorCode::SSL_CONNECT_ERROR)
|
|
{
|
|
{
|
|
- m_error_msg = "SSL连接错误";
|
|
|
|
|
|
+ isHttpsError = true;
|
|
|
|
+ Logger::getSingletonPtr()->DEBUG("ssl error : " + msg);
|
|
|
|
+ m_error_msg = "ssl error ";
|
|
|
|
+ //m_error_msg = S_CA2A("SSL连接错误", CP_UTF8).GetBuffer(0);
|
|
}
|
|
}
|
|
else {
|
|
else {
|
|
m_error_msg = msg;
|
|
m_error_msg = msg;
|
|
|
|
+ //m_error_msg = S_CA2A(msg.c_str(), CP_UTF8).GetBuffer(0);;
|
|
}
|
|
}
|
|
|
|
|
|
return m_error_msg;
|
|
return m_error_msg;
|