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

Method startRequest

Libraries/Http/HttpConnection.cpp:1230–1254  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1228}
1229
1230Result HttpAsyncClientRequest::startRequest(HttpParser::Method value, StringSpan valueURL)
1231{
1232 static constexpr const char* HeaderSpaceFinished = "HttpAsyncClientRequest header space is finished";
1233
1234 SC_TRY_MSG(not headersSent, "Headers already sent");
1235 SC_TRY_MSG(responseHeaders.writtenBytes() == 0, "startRequest must be the first call");
1236
1237 method = value;
1238 url = valueURL.sizeInBytes() > 0 ? valueURL : StringSpan("/");
1239
1240 switch (method)
1241 {
1242 case HttpParser::Method::HttpGET: SC_TRY(responseHeaders.appendLiteral("GET ", HeaderSpaceFinished)); break;
1243 case HttpParser::Method::HttpHEAD: SC_TRY(responseHeaders.appendLiteral("HEAD ", HeaderSpaceFinished)); break;
1244 case HttpParser::Method::HttpPUT: SC_TRY(responseHeaders.appendLiteral("PUT ", HeaderSpaceFinished)); break;
1245 case HttpParser::Method::HttpPOST: SC_TRY(responseHeaders.appendLiteral("POST ", HeaderSpaceFinished)); break;
1246 case HttpParser::Method::HttpPATCH: SC_TRY(responseHeaders.appendLiteral("PATCH ", HeaderSpaceFinished)); break;
1247 case HttpParser::Method::HttpDELETE: SC_TRY(responseHeaders.appendLiteral("DELETE ", HeaderSpaceFinished)); break;
1248 case HttpParser::Method::HttpOPTIONS: SC_TRY(responseHeaders.appendLiteral("OPTIONS ", HeaderSpaceFinished)); break;
1249 }
1250
1251 SC_TRY(responseHeaders.append(url, HeaderSpaceFinished));
1252 SC_TRY(responseHeaders.appendLiteral(" HTTP/1.1\r\n", HeaderSpaceFinished));
1253 return Result(true);
1254}
1255
1256Result HttpAsyncClientRequest::setExpectedBodyLength(uint64_t value)
1257{

Callers 1

Calls 4

StringSpanFunction · 0.85
ResultClass · 0.50
sizeInBytesMethod · 0.45
appendMethod · 0.45

Tested by 1