@@ -282,33 +282,44 @@ namespace Comm
282282 bool Duet::Post (std::string_view subUrl, HttpResponse& r, hv::QueryParams& queryParameters, std::string_view data)
283283 {
284284 ZoneScoped;
285- #if 0
286- if ((!m_sbcMode && m_sessionKey == sm_noSessionKey) ||
287- (TimeHelper::getCurrentTime() - m_lastRequestTime > m_sessionTimeout))
285+ if (!IsConnected ())
288286 {
289287 if (!Connect ())
290288 {
291289 LOG_WARN (" Failed to connect to Duet, cannot send post request {:s}" , subUrl);
292290 return false ;
293291 }
294292 }
295- if (!Comm::Post(GetBaseUrl(), subUrl, r, queryParameters, data, m_sessionKey))
293+
294+ HttpRequest req;
295+ req.method = HTTP_POST;
296+ req.host = GetBaseUrl ();
297+ req.path = subUrl;
298+ req.headers [" Connection" ] = " keep-alive" ;
299+ req.headers [" Accept" ] = " application/json" ;
300+ req.headers [" Content-Type" ] = " application/json" ;
301+ if (m_sessionKey != sm_noSessionKey)
296302 {
297- if (r.code == 401 || r.code == 403)
298- {
299- LOG_ERROR("HTTP error {:d}: Likely invalid sessionKey {:d}. Running rr_connect", (int)r.code, m_sessionKey);
300- Connect();
301- return Comm::Post(GetBaseUrl(), subUrl, r, queryParameters, data, m_sessionKey);
302- }
303+ // req.headers["X-Session-Key"] = fmt::format("{:d}", m_sessionKey).c_str();
304+ }
305+ req.query_params = queryParameters;
306+ req.timeout = HTTP_TIMEOUT;
307+ req.body = data;
308+
309+ req.DumpUrl ();
310+
311+ hv::HttpClient cli;
312+ cli.send (&req, &r); // `send()` is not thread safe if using the same client so client is created on stack
313+
314+ LOG_DBG (" Response (post): {:s} {:s}" , req.url .c_str (), r.status_message ());
315+
316+ if (r.status_code != HTTP_STATUS_OK)
317+ {
318+ LOG_ERROR (" HTTP error {:d}: Likely invalid sessionKey {:d}." , (int )r.status_code , m_sessionKey);
303319 return false ;
304320 }
305- m_lastRequestTime = TimeHelper::getCurrentTime();
306- #else
307- UNUSED (subUrl);
308- UNUSED (r);
309- UNUSED (queryParameters);
310- UNUSED (data);
311- #endif
321+ LOG_VERBOSE (" {:s}" , r.body .c_str ());
322+ m_lastRequestTime = TimeHelper::getRunningTime ();
312323 return true ;
313324 }
314325
0 commit comments