ObjFW
|
00001 /* 00002 * Copyright (c) 2008, 2009, 2010, 2011 00003 * Jonathan Schleifer <js@webkeks.org> 00004 * 00005 * All rights reserved. 00006 * 00007 * This file is part of ObjFW. It may be distributed under the terms of the 00008 * Q Public License 1.0, which can be found in the file LICENSE.QPL included in 00009 * the packaging of this file. 00010 * 00011 * Alternatively, it may be distributed under the terms of the GNU General 00012 * Public License, either version 2 or 3, which can be found in the file 00013 * LICENSE.GPLv2 or LICENSE.GPLv3 respectively included in the packaging of this 00014 * file. 00015 */ 00016 00017 #import "OFObject.h" 00018 00019 @class OFString; 00020 @class OFDictionary; 00021 @class OFURL; 00022 @class OFHTTPRequestResult; 00023 @class OFDataArray; 00024 00025 typedef enum of_http_request_type_t { 00026 OF_HTTP_REQUEST_TYPE_GET, 00027 OF_HTTP_REQUEST_TYPE_POST, 00028 OF_HTTP_REQUEST_TYPE_HEAD 00029 } of_http_request_type_t; 00030 00034 @interface OFHTTPRequest: OFObject 00035 { 00036 OFURL *URL; 00037 of_http_request_type_t requestType; 00038 OFString *queryString; 00039 OFDictionary *headers; 00040 BOOL redirectsFromHTTPSToHTTPAllowed; 00041 } 00042 00043 #ifdef OF_HAVE_PROPERTIES 00044 @property (copy) OFURL *URL; 00045 @property (assign) of_http_request_type_t requestType; 00046 @property (copy) OFString *queryString; 00047 @property (copy) OFDictionary *headers; 00048 @property (assign) BOOL redirectsFromHTTPSToHTTPAllowed; 00049 #endif 00050 00054 + request; 00055 00060 + requestWithURL: (OFURL*)url; 00061 00068 - initWithURL: (OFURL*)url; 00069 00075 - (void)setURL: (OFURL*)url; 00076 00080 - (OFURL*)URL; 00081 00087 - (void)setRequestType: (of_http_request_type_t)type; 00088 00092 - (of_http_request_type_t)requestType; 00093 00099 - (void)setQueryString: (OFString*)qs; 00100 00104 - (OFString*)queryString; 00105 00111 - (void)setHeaders: (OFDictionary*)headers; 00112 00116 - (OFDictionary*)headers; 00117 00123 - (void)setRedirectsFromHTTPSToHTTPAllowed: (BOOL)allowed; 00124 00128 - (BOOL)redirectsFromHTTPSToHTTPAllowed; 00129 00135 - (OFHTTPRequestResult*)perform; 00136 00145 - (OFHTTPRequestResult*)performWithRedirects: (size_t)redirects; 00146 @end 00147 00151 @interface OFHTTPRequestResult: OFObject 00152 { 00153 short statusCode; 00154 OFDataArray *data; 00155 OFDictionary *headers; 00156 } 00157 00158 #ifdef OF_HAVE_PROPERTIES 00159 @property (readonly) short statusCode; 00160 @property (readonly, copy) OFDictionary *headers; 00161 @property (readonly, retain) OFDataArray *data; 00162 #endif 00163 00165 - initWithStatusCode: (short)status 00166 headers: (OFDictionary*)headers 00167 data: (OFDataArray*)data; 00169 00173 - (short)statusCode; 00174 00178 - (OFDictionary*)headers; 00179 00183 - (OFDataArray*)data; 00184 @end 00185 00186 extern Class of_http_request_tls_socket_class;