This commit is contained in:
aozhiwei 2022-12-19 10:44:55 +08:00
parent a2a217597e
commit 76f2d768cf
2 changed files with 20 additions and 35 deletions

View File

@ -15,6 +15,7 @@
struct HttpProxyRequest
{
std::string req_id;
f8::HttpProxyCb cb;
std::string url;
a8::XObject url_params;
long long add_tick = 0;
@ -39,13 +40,9 @@ static void _ProxyCallback(f8::JsonHttpRequest* request)
}
if (request->request.HasKey("errcode") &&
request->request.Get("errcode").GetInt() == 0) {
#if 0
req->on_ok(req->param, data);
#endif
req->cb(true, &request->request, nullptr);
} else {
#if 0
req->on_error(req->param, data.Get("errmsg").GetString());
#endif
req->cb(false, &request->request, nullptr);
}
HttpProxy::Instance()->DestoryRequest(req);
}
@ -70,10 +67,7 @@ std::string HttpProxy::HttpGet(
{
std::shared_ptr<HttpProxyRequest> request = std::make_shared<HttpProxyRequest>();
request->req_id = CreateRequestId();
#if 0
request->param = param;
request->on_ok = on_ok;
request->on_error = on_error;
request->cb = cb;
request->url = url;
request->url_params = url_params;
request->add_tick = a8::XGetTickCount();
@ -95,44 +89,35 @@ std::string HttpProxy::HttpGet(
std::string proxy_url;
JsonDataMgr::Instance()->GetHttpProxyUrl(proxy_url);
f8::HttpClientPool::Instance()->HttpGet
(a8::XParams()
.SetSender(request->req_id),
[] (a8::XParams& param, a8::XObject& data)
(
[request] (bool ok, a8::XObject* rsp_obj, f8::HttpContext* ctx)
{
std::shared_ptr<HttpProxyRequest> req = HttpProxy::Instance()->GetRequest(param.sender.GetString());
if (req) {
long long cost_time = a8::XGetTickCount() - req->add_tick;
long long cost_time = a8::XGetTickCount() - request->add_tick;
if (ok) {
#ifdef DEBUG
f8::UdpLog::Instance()->Debug("ProxyHttpGet ok cost_time:%d url:%s params:%s",
{
cost_time,
req->url,
req->url_params.ToJsonStr(),
cost_time,
request->url,
request->url_params.ToJsonStr(),
});
#endif
}
},
[] (a8::XParams& param, const std::string& response)
{
std::shared_ptr<HttpProxyRequest> req = HttpProxy::Instance()->GetRequest(param.sender.GetString());
if (req) {
long long cost_time = a8::XGetTickCount() - req->add_tick;
} else {
f8::UdpLog::Instance()->Warning("ProxyHttpGet error cost_time:%d url:%s params:%s response:%s",
{
cost_time,
req->url,
req->url_params.ToJsonStr(),
response
});
req->on_error(req->param, response);
cost_time,
request->url,
request->url_params.ToJsonStr(),
ctx->response
});
request->cb(false, rsp_obj, ctx);
HttpProxy::Instance()->DestoryRequest(request);
}
HttpProxy::Instance()->DestoryRequest(req);
},
proxy_url.c_str(),
*proxy_url_params,
rand() % MAX_SYS_HTTP_NUM
);
#endif
return request->req_id;
}

2
third_party/f8 vendored

@ -1 +1 @@
Subproject commit 7f272dc6b3c72839997921cfa1a78a0118eb504c
Subproject commit 74dfc2b9f910f757d57cca73f35909061417fba1