MCPcopy Create free account
hub / github.com/Pagghiu/SaneCppLibraries / validateRequestShape

Function validateRequestShape

Libraries/HttpClient/HttpClient.cpp:389–410  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

387}
388
389static SC::Result validateRequestShape(const SC::HttpClientRequest& request)
390{
391 SC_TRY(validateRequestUrl(request.url));
392 SC_TRY_MSG(isValidRequestMethod(request.method), "HttpClientRequest: invalid request method");
393 SC_TRY(validateRequestHeaders(request.headers));
394 SC_TRY(validateRequestBodyFramingHeaders(request));
395 SC_TRY(validateRequestBodyShape(request.body));
396 SC_TRY(validateRequestOptionsShape(request.options));
397
398 if (request.options.redirect.mode == SC::HttpClientRequestRedirectOptions::FollowGetHead)
399 {
400 SC_TRY_MSG(request.method == SC::HttpClientRequest::HttpGET or
401 request.method == SC::HttpClientRequest::HttpHEAD,
402 "HttpClientRequest: FollowGetHead requires GET or HEAD");
403 }
404 if (request.options.redirect.mode != SC::HttpClientRequestRedirectOptions::NoRedirects)
405 {
406 SC_TRY_MSG((not request.body.isStreamed()) or request.body.canReplay,
407 "HttpClientRequest: automatic redirects require a replayable request body");
408 }
409 return SC::Result(true);
410}
411
412static SC::Result validateRequestOptionsSupported(const SC::HttpClientRequestOptions& options,
413 const SC::HttpClientCapabilities& capabilities)

Callers 1

validateMethod · 0.85

Calls 7

validateRequestUrlFunction · 0.85
isValidRequestMethodFunction · 0.85
validateRequestHeadersFunction · 0.85
validateRequestBodyShapeFunction · 0.85
ResultClass · 0.50

Tested by

no test coverage detected