mirror of
https://github.com/encounter/cpp3ds.git
synced 2026-07-10 03:18:37 -07:00
Allow for custom http buffer size
This commit is contained in:
@@ -415,7 +415,7 @@ public:
|
||||
/// \return Server's response
|
||||
///
|
||||
////////////////////////////////////////////////////////////
|
||||
Response sendRequest(const Request& request, Time timeout = Time::Zero, RequestCallback callback = nullptr);
|
||||
Response sendRequest(const Request& request, Time timeout = Time::Zero, RequestCallback callback = nullptr, size_t bufferSize = 4096);
|
||||
|
||||
private:
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ void Http::setHost(const std::string& host, unsigned short port)
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
Http::Response Http::sendRequest(const Http::Request& request, Time timeout, RequestCallback callback)
|
||||
Http::Response Http::sendRequest(const Http::Request& request, Time timeout, RequestCallback callback, size_t bufferSize)
|
||||
{
|
||||
if (m_context.httphandle)
|
||||
{
|
||||
@@ -314,7 +314,7 @@ Http::Response Http::sendRequest(const Http::Request& request, Time timeout, Req
|
||||
u32 size = 0;
|
||||
u32 lastProcessed = 0;
|
||||
u32 processed = 0;
|
||||
u8 buffer[4*1024];
|
||||
u8 *buffer = new u8[bufferSize];
|
||||
char *charBuf = reinterpret_cast<char*>(buffer);
|
||||
|
||||
|
||||
@@ -323,7 +323,7 @@ Http::Response Http::sendRequest(const Http::Request& request, Time timeout, Req
|
||||
while (dlret == HTTPC_RESULTCODE_DOWNLOADPENDING)
|
||||
{
|
||||
|
||||
dlret = httpcReceiveData(&m_context, buffer, sizeof(buffer));
|
||||
dlret = httpcReceiveData(&m_context, buffer, bufferSize);
|
||||
|
||||
if (R_FAILED(ret = httpcGetDownloadSizeState(&m_context, &processed, NULL)))
|
||||
break;
|
||||
@@ -343,6 +343,7 @@ Http::Response Http::sendRequest(const Http::Request& request, Time timeout, Req
|
||||
}
|
||||
}
|
||||
|
||||
delete[] buffer;
|
||||
received.m_body = receivedStr;
|
||||
return received;
|
||||
}
|
||||
|
||||
@@ -354,7 +354,7 @@ void Http::setHost(const std::string& host, unsigned short port)
|
||||
|
||||
|
||||
////////////////////////////////////////////////////////////
|
||||
Http::Response Http::sendRequest(const Http::Request& request, Time timeout, RequestCallback callback)
|
||||
Http::Response Http::sendRequest(const Http::Request& request, Time timeout, RequestCallback callback, size_t bufferSize)
|
||||
{
|
||||
// First make sure that the request is valid -- add missing mandatory fields
|
||||
Request toSend(request);
|
||||
@@ -403,8 +403,8 @@ Http::Response Http::sendRequest(const Http::Request& request, Time timeout, Req
|
||||
std::string receivedStr;
|
||||
std::size_t size = 0;
|
||||
std::size_t processed = 0;
|
||||
char buffer[4*1024];
|
||||
while (m_connection.receive(buffer, sizeof(buffer), size) == Socket::Done)
|
||||
char *buffer = new char[bufferSize];
|
||||
while (m_connection.receive(buffer, bufferSize, size) == Socket::Done)
|
||||
{
|
||||
if (callback)
|
||||
{
|
||||
@@ -433,6 +433,8 @@ Http::Response Http::sendRequest(const Http::Request& request, Time timeout, Req
|
||||
receivedStr.append(buffer, buffer + size);
|
||||
}
|
||||
|
||||
delete[] buffer;
|
||||
|
||||
// Build the Response object from the received data
|
||||
if (!callback)
|
||||
received.parse(receivedStr);
|
||||
|
||||
Reference in New Issue
Block a user