33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
|
/**
* @protocol OFHTTPClientDelegate OFHTTPClient.h ObjFW/OFHTTPClient.h
*
* @brief A delegate for OFHTTPClient.
*/
@protocol OFHTTPClientDelegate <OFObject>
/**
* @brief A callback which is called when an OFHTTPClient performed a request.
*
* @param client The OFHTTPClient which performed the request
* @param request The request the OFHTTPClient performed
* @param response The response to the request performed, or nil on error
* @param exception An exception if the request failed, or nil on success
*/
- (void)client: (OFHTTPClient *)client
didPerformRequest: (OFHTTPRequest *)request
response: (nullable OFHTTPResponse *)response
exception: (nullable id)exception;
@optional
/**
* @brief A callback which is called when an OFHTTPClient creates a TCP socket.
*
* This can be used to tell the socket about a SOCKS5 proxy it should use for
* this connection.
*
* @param client The OFHTTPClient that created a TCP socket
* @param TCPSocket The socket created by the OFHTTPClient
* @param request The request for which the TCP socket was created
*/
- (void)client: (OFHTTPClient *)client
didCreateTCPSocket: (OFTCPSocket *)TCPSocket
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an OFHTTPClient creates a TLS stream.
*
* This can be used to tell the TLS stream about a client certificate it should
* use before performing the TLS handshake.
*
* @param client The OFHTTPClient that created a TLS stream
* @param TLSStream The TLS stream created by the OFHTTPClient
* @param request The request for which the TLS stream was created
*/
- (void)client: (OFHTTPClient *)client
didCreateTLSStream: (OFTLSStream *)TLSStream
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an OFHTTPClient wants to send the
* body for a request.
*
* @param client The OFHTTPClient that wants to send the body
* @param requestBody A stream into which the body of the request should be
* written
* @param request The request for which the OFHTTPClient wants to send the body
*/
- (void)client: (OFHTTPClient *)client
wantsRequestBody: (OFStream *)requestBody
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an OFHTTPClient received headers.
*
* @param client The OFHTTPClient which received the headers
* @param headers The headers received
* @param statusCode The status code received
* @param request The request for which the headers and status code have been
* received
*/
- (void)client: (OFHTTPClient *)client
didReceiveHeaders: (OFDictionary OF_GENERIC(OFString *, OFString *) *)headers
statusCode: (short)statusCode
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an OFHTTPClient wants to follow a
* redirect.
*
* If you want to get the headers and data for each redirect, set the number of
* redirects to 0 and perform a new OFHTTPClient for each redirect. However,
* this callback will not be called then and you have to look at the status code
* to detect a redirect.
*
* This callback will only be called if the OFHTTPClient will follow a
|
|
>
|
>
|
>
|
|
|
|
|
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
|
/**
* @protocol OFHTTPClientDelegate OFHTTPClient.h ObjFW/OFHTTPClient.h
*
* @brief A delegate for OFHTTPClient.
*/
@protocol OFHTTPClientDelegate <OFObject>
/**
* @brief A callback which is called when an @ref OFHTTPClient performed a
* request.
*
* @param client The OFHTTPClient which performed the request
* @param request The request the OFHTTPClient performed
* @param response The response to the request performed, or nil on error
* @param exception An exception if the request failed, or nil on success
*/
- (void)client: (OFHTTPClient *)client
didPerformRequest: (OFHTTPRequest *)request
response: (nullable OFHTTPResponse *)response
exception: (nullable id)exception;
@optional
/**
* @brief A callback which is called when an @ref OFHTTPClient creates a TCP
* socket.
*
* This can be used to tell the socket about a SOCKS5 proxy it should use for
* this connection.
*
* @param client The OFHTTPClient that created a TCP socket
* @param TCPSocket The socket created by the OFHTTPClient
* @param request The request for which the TCP socket was created
*/
- (void)client: (OFHTTPClient *)client
didCreateTCPSocket: (OFTCPSocket *)TCPSocket
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an @ref OFHTTPClient creates a TLS
* stream.
*
* This can be used to tell the TLS stream about a client certificate it should
* use before performing the TLS handshake.
*
* @param client The OFHTTPClient that created a TLS stream
* @param TLSStream The TLS stream created by the OFHTTPClient
* @param request The request for which the TLS stream was created
*/
- (void)client: (OFHTTPClient *)client
didCreateTLSStream: (OFTLSStream *)TLSStream
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an @ref OFHTTPClient wants to send
* the body for a request.
*
* @param client The OFHTTPClient that wants to send the body
* @param requestBody A stream into which the body of the request should be
* written
* @param request The request for which the OFHTTPClient wants to send the body
*/
- (void)client: (OFHTTPClient *)client
wantsRequestBody: (OFStream *)requestBody
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an @ref OFHTTPClient received headers.
*
* @param client The OFHTTPClient which received the headers
* @param headers The headers received
* @param statusCode The status code received
* @param request The request for which the headers and status code have been
* received
*/
- (void)client: (OFHTTPClient *)client
didReceiveHeaders: (OFDictionary OF_GENERIC(OFString *, OFString *) *)headers
statusCode: (short)statusCode
request: (OFHTTPRequest *)request;
/**
* @brief A callback which is called when an @ref OFHTTPClient wants to follow
* a redirect.
*
* If you want to get the headers and data for each redirect, set the number of
* redirects to 0 and perform a new OFHTTPClient for each redirect. However,
* this callback will not be called then and you have to look at the status code
* to detect a redirect.
*
* This callback will only be called if the OFHTTPClient will follow a
|