History log of /haiku/src/kits/network/libnetservices2/HttpRequest.cpp
Revision Date Author Comments
# 71e29bbe 29-Oct-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: format code using `haiku-format`

This commit formats all the netservices2 code with the `haiku-format` tool from
https://github.com/owenca/haiku-format (commit aa7408e), with the following
customizations:
* SpaceBeforeRangeBasedForLoopColon is set to false
* Braces before a catch block are not wrapped
* Most headers, except for ExclusiveBorrow.h, have been manually reformatted
to adhere to Haiku's header format (issue #19 in the repository)

Change-Id: I693c4515cf26402e48f35d1213ab6d5fcf14bd1e


# 6c4a9fd6 15-Aug-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: add query part of the URL to the request

Change-Id: Ie169041925544f082a8be728d77cbc69edf2caa2


# 6d1bb0e7 07-Aug-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Remove BHttpRequest::SerializeTo(BDataIO*)

The private version that serializes to a HttpBuffer is now used.

Change-Id: I034933a641e98b3a8f918470a024ba32ea7c8663


# c7f925c3 06-Aug-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: add the HttpSerializer helper to help serialize requests

Change-Id: Ide1e2d387884ce4cf2d406057960cd0732d61f38


# b74e852f 19-Jul-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Remove Accept as standard and protected header.

In the old service kit, the Accept header was automatically set. However, it is
not a required header. This removes the default value and the protection against
setting it manually.

Required to make HaikuDepot work.

Change-Id: Ic589bfc5829db25915b67f2a13b6c2436c053e25


# 92357c13 23-Jun-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Add support for an input body in a request and handle this with redirects.

Change-Id: Id2399d49aa673469c8c04ebd13884cdbcb24112d


# 2f3b9b18 03-Jun-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Add/rework the MaxRedirections, Timeout and StopOnError options

Change-Id: I4e59b51c16c6777941dc92ce02505386257dad03


# f9d9d202 29-May-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Add support for Basic authentication

Change-Id: I304104f7096fd935212e1bfa3e988e7945cb5cec


# f7515342 15-May-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: add optional fields to BHttpRequest

Change-Id: I6228419a55c81203ce2c26827d17ff6a402d86c5


# 13bfff7b 23-Apr-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Implement BHttpStatusCode, BHttpStatusClass and Redirects

The user of the API can set whether redirects should be followed, and if so,
how many. This is part of the BHttpRequest API. The BHttpSession then follows
those instructions, and executes the maximum number of redirects the user
would like to follow.

As part of this commit, the BHttpStatusClass and BHttpStatusCodes helper enums
have been added, to give a friendlier access to HTTP status codes and status
classes.

Change-Id: Ic8c9e3fda158e2cce549c8f1d360951f7ac83311


# 59c359e5 18-Apr-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: implement support for HEAD requests and 204 responses.

These particular responses will not have a body. This is now handled by the
BHttpSession object. There is also a minor fix in here that prevents a crash
when multiple requests are handled by the DataThread at the same time, and not
all of the requests have events.

Change-Id: I7f47d8b3cd8491c8193275be4b3fc1080780fa20


# 8ccf8fb4 10-Apr-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Rewrite BHttpFields to use raw strings as underlying data storage

This change also drops the principle that fields with the same keys would be
grouped together. This was initially inspired by Boost::Beast, but it means a
lot of extra copying of data when adding/organizing the list, as well as
inefficient querying on each add. Now that the design choice is to fully go
for the raw string as underlying data storage, that choice is not necessary.
In the future it may be able to emulate the grouping or retrieving of lists
of values in the API, rather than as a fundamental principle of the data
storage.

Change-Id: I2667cfa38eb3b7b75393ee71fb038231a40b4193


# d9a4c607 30-Mar-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Serialize the header of a BHttpRequest to a string

Change-Id: Ib1e22536a0b39dc6e9461e7993ea6784f1ea0e2f


# 3b172a3d 07-Mar-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: implement hostname resolution and connection for BHttpRequest

BHttpSession::Execute() moves the request into the session, and returns a future BHttpResponse
object. Currently implemented are resolving the hostname, and opening the connection.

There is some scaffolding for the actual data transfer.

Change-Id: I5a8a7a7f8680036b91cdba4beee140bbed6bfd5a


# 6ce6e964 25-Feb-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Introduce BHttpRequest class

Objects of this class describe a HTTP request. It contains several convenience
functions that will allow a user to describe the properties of the request.
More options to be added later.

Change-Id: If6a00d26808c5ed4b121cb36dc75a2a1cc449f95


# ec865cb8 20-Feb-2022 Niels Sascha Reedijk <niels.reedijk@gmail.com>

NetServices: Add BHttpMethod that represents a HTTP method

This class provides defaults and performs basic validation for HTTP Methods as
defined by the standard. They will be used in conjunction with a future
BHttpRequest class.

Change-Id: If69a7ec186d9d1165e8efe5ab5df50d5a089208d