15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
*/
#import "OFObject.h"
@class OFString;
@class OFDictionary;
@class OFURL;
@class OFHTTPRequestResult;
@class OFDataArray;
typedef enum of_http_request_type_t {
OF_HTTP_REQUEST_TYPE_GET,
OF_HTTP_REQUEST_TYPE_POST,
OF_HTTP_REQUEST_TYPE_HEAD
} of_http_request_type_t;
/**
* \brief A class for storing and performing HTTP requests.
*/
@interface OFHTTPRequest: OFObject
{
OFURL *URL;
of_http_request_type_t requestType;
OFString *queryString;
OFDictionary *headers;
BOOL redirectsFromHTTPSToHTTPAllowed;
}
#ifdef OF_HAVE_PROPERTIES
@property (copy) OFURL *URL;
@property (assign) of_http_request_type_t requestType;
@property (copy) OFString *queryString;
@property (copy) OFDictionary *headers;
@property (assign) BOOL redirectsFromHTTPSToHTTPAllowed;
#endif
/**
* \return A new, autoreleased OFHTTPRequest
*/
+ request;
|
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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
|
*/
#import "OFObject.h"
@class OFString;
@class OFDictionary;
@class OFURL;
@class OFHTTPRequest;
@class OFHTTPRequestResult;
@class OFDataArray;
typedef enum of_http_request_type_t {
OF_HTTP_REQUEST_TYPE_GET,
OF_HTTP_REQUEST_TYPE_POST,
OF_HTTP_REQUEST_TYPE_HEAD
} of_http_request_type_t;
/**
* \brief A delegate for OFHTTPRequests.
*/
#ifndef OF_HTTP_REQUEST_M
@protocol OFHTTPRequestDelegate <OFObject>
#else
@protocol OFHTTPRequestDelegate
#endif
#ifdef OF_HAVE_OPTIONAL_PROTOCOLS
@optional
#endif
/**
* This callback is called when the OFHTTPRequest received the headers.
*
* \param request The OFHTTPRequest which received the headers
* \param headers The headers received
* \param statusCode The status code received
*/
- (void)request: (OFHTTPRequest*)request
didReceiveHeaders: (OFDictionary*)headers
withStatusCode: (int)statusCode;
/**
* This callback is called when the OFHTTPRequest received data.
*
* This is useful for example if you want to update a status display.
*
* \param request The OFHTTPRequest which received data
* \param data The data the OFHTTPRequest received
* \param len The length of the data received, in bytes
*/
- (void)request: (OFHTTPRequest*)request
didReceiveData: (const char*)data
withLength: (size_t)len;
/**
* This callback is called when the OFHTTPRequest will 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 OFHTTPRequest 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 OFHTTPRequest will follow a
* redirect. If the maximum number of redirects has been reached already, this
* callback will not be called.
*
* \param request The OFHTTPRequest which will follow a redirect
* \param url The URL to which it will follow a redirect
* \return A boolean whether the OFHTTPRequest should follow the redirect
*/
- (BOOL)request: (OFHTTPRequest*)request
willFollowRedirectTo: (OFURL*)url;
@end
/**
* \brief A class for storing and performing HTTP requests.
*/
@interface OFHTTPRequest: OFObject
{
OFURL *URL;
of_http_request_type_t requestType;
OFString *queryString;
OFDictionary *headers;
BOOL redirectsFromHTTPSToHTTPAllowed;
id <OFHTTPRequestDelegate> delegate;
}
#ifdef OF_HAVE_PROPERTIES
@property (copy) OFURL *URL;
@property (assign) of_http_request_type_t requestType;
@property (copy) OFString *queryString;
@property (copy) OFDictionary *headers;
@property (assign) BOOL redirectsFromHTTPSToHTTPAllowed;
@property (retain) id <OFHTTPRequestDelegate> delegate;
#endif
/**
* \return A new, autoreleased OFHTTPRequest
*/
+ request;
|
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
- (void)setRedirectsFromHTTPSToHTTPAllowed: (BOOL)allowed;
/**
* \return Whether redirects from HTTPS to HTTP are allowed
*/
- (BOOL)redirectsFromHTTPSToHTTPAllowed;
/**
* Performs the HTTP request and returns an OFHTTPRequestResult.
*
* \return An OFHTTPRequestResult with the result of the HTTP request
*/
- (OFHTTPRequestResult*)perform;
|
>
>
>
>
>
>
>
>
>
>
>
>
|
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
|
- (void)setRedirectsFromHTTPSToHTTPAllowed: (BOOL)allowed;
/**
* \return Whether redirects from HTTPS to HTTP are allowed
*/
- (BOOL)redirectsFromHTTPSToHTTPAllowed;
/**
* Sets the delegate for the HTTP request.
*
* \param delegate The delegate for the HTTP request
*/
- (void)setDelegate: (id <OFHTTPRequestDelegate>)delegate;
/**
* \return The delegate for the HTTP request.
*/
- (id <OFHTTPRequestDelegate>)delegate;
/**
* Performs the HTTP request and returns an OFHTTPRequestResult.
*
* \return An OFHTTPRequestResult with the result of the HTTP request
*/
- (OFHTTPRequestResult*)perform;
|
178
179
180
181
182
183
184
185
186
|
- (OFDictionary*)headers;
/**
* \return The data returned for the HTTP request
*/
- (OFDataArray*)data;
@end
extern Class of_http_request_tls_socket_class;
|
>
>
>
|
248
249
250
251
252
253
254
255
256
257
258
259
|
- (OFDictionary*)headers;
/**
* \return The data returned for the HTTP request
*/
- (OFDataArray*)data;
@end
@interface OFObject (OFHTTPRequestDelegate) <OFHTTPRequestDelegate>
@end
extern Class of_http_request_tls_socket_class;
|