/** GSWRequest.h - GSWeb: Class GSWRequest Copyright (C) 1999-2002 Free Software Foundation, Inc. Written by: Manuel Guesdon Date: Jan 1999 $Revision$ $Date$ This file is part of the GNUstep Web Library. This library is free software; you can redistribute it and/or modify it under the terms of the GNU Library General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This library is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License for more details. You should have received a copy of the GNU Library General Public License along with this library; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. **/ // $Id$ #ifndef _GSWRequest_h__ #define _GSWRequest_h__ //==================================================================== @interface GSWRequest : NSObject { @private NSString* _method; GSWDynamicURLString* _uri; NSString* _httpVersion; NSDictionary* _headers; NSData* _content; NSDictionary* _userInfo; NSStringEncoding _defaultFormValueEncoding; NSStringEncoding _formValueEncoding; NSDictionary* _formValues; NSDictionary* _cookie; NSString* _applicationURLPrefix; NSArray* _requestHandlerPathArray; NSArray* _browserLanguages; int _requestType; BOOL _isUsingWebServer; BOOL _formValueEncodingDetectionEnabled; int _applicationNumber; }; -(id)initWithMethod:(NSString*)aMethod uri:(NSString*)anURL httpVersion:(NSString*)aVersion headers:(NSDictionary*)headers content:(NSData*)content userInfo:(NSDictionary*)userInfo; -(void)dealloc; -(id)copyWithZone:(NSZone*)zone; -(NSData*)content; -(NSDictionary*)headers; -(NSString*)headerForKey:(NSString*)key; -(NSArray*)headerKeys; -(NSArray*)headersForKey:(NSString*)key; -(NSString*)httpVersion; -(NSString*)method; -(NSArray*)browserLanguages; -(NSArray*)requestHandlerPathArray; -(NSString*)uri; -(NSString*)urlProtocol;//NDFN -(NSString*)urlHost;//NDFN -(NSString*)urlPortString;//NDFN -(int)urlPort;//NDFN -(NSString*)urlProtocolHostPort;//NDFN -(BOOL)isSecure;//NDFN -(NSDictionary*)userInfo; -(NSString*)description; @end //==================================================================== @interface GSWRequest (GSWFormValueReporting) -(void)setDefaultFormValueEncoding:(NSStringEncoding)encoding; -(NSStringEncoding)defaultFormValueEncoding; -(void)setFormValueEncodingDetectionEnabled:(BOOL)flag; -(BOOL)isFormValueEncodingDetectionEnabled; -(NSStringEncoding)formValueEncoding; -(NSArray*)formValueKeys; -(NSArray*)formValuesForKey:(NSString*)key; -(id)formValueForKey:(NSString*)key; // return id because GSWFileUpload -(NSDictionary*)formValues; @end //==================================================================== @interface GSWRequest (GSWRequestTypeReporting) -(BOOL)isFromClientComponent; @end //==================================================================== @interface GSWRequest (Cookies) //NDFN -(void)setCookieFromHeaders; -(NSArray*)cookieValuesForKey:(NSString*)key; -(NSString*)cookieValueForKey:(NSString*)key; -(NSDictionary*)cookieValues; -(NSDictionary*)_initCookieDictionary; -(NSString*)_cookieDescription; @end //==================================================================== @interface GSWRequest (GSWRequestA) -(NSString*)sessionID; -(NSString*)requestHandlerPath; -(NSString*)adaptorPrefix; -(NSString*)applicationName; -(int)applicationNumber; -(NSString*)requestHandlerKey; @end //==================================================================== @interface GSWRequest (GSWRequestB) -(NSDictionary*)_extractValuesFromFormData:(NSData*)formData withEncoding:(NSStringEncoding)encoding; -(NSStringEncoding)_formValueEncodingFromFormData:(NSData*)formData; -(NSData*)_formData; -(NSString*)_contentType; -(NSString*)_urlQueryString; @end //==================================================================== @interface GSWRequest (GSWRequestF) -(BOOL)_isUsingWebServer; -(void)_setIsUsingWebServer:(BOOL)_flag; @end //==================================================================== @interface GSWRequest (GSWRequestG) -(BOOL)_isSessionIDinRequest; -(BOOL)_isSessionIDinCookies; -(BOOL)_isSessionIDinFormValues; -(id)_completeURLWithRequestHandlerKey:(NSString*)key path:(NSString*)path queryString:(NSString*)queryString isSecure:(BOOL)isSecure port:(int)port; -(GSWDynamicURLString*)_urlWithRequestHandlerKey:(NSString*)key path:(NSString*)path queryString:(NSString*)queryString; -(GSWDynamicURLString*)_applicationURLPrefix; -(NSDictionary*)_formValues; -(void)_getFormValuesFromURLEncoding; -(BOOL)_hasFormValues; @end //==================================================================== @interface GSWRequest (GSWRequestH) -(void)_getFormValuesFromMultipartFormData; -(NSArray*)_decodeMultipartBody:(NSData*)body boundary:(NSString*)boundary; -(NSArray*)_parseData:(NSData*)data; -(NSDictionary*)_parseOneHeader:(NSString*)header; @end //==================================================================== @interface GSWRequest (GSWRequestI) -(id)nonNilFormValueForKey:(NSString*)key; @end //==================================================================== @interface GSWRequest (GSWRequestJ) -(id)dictionaryWithKeys:(id)unknown; -(NSString*)selectedButtonName; -(id)valueFromImageMapNamed:(NSString*)aName; -(id)valueFromImageMapNamed:(NSString*)aName inFramework:(NSString*)aFramework; -(id)valueFromImageMap:(id)unknown; -(id)yCoord; -(id)xCoord; -(id)formKeyWithSuffix:(NSString*)suffix; @end //==================================================================== @interface GSWRequest (GSWRequestK) -(NSString*)applicationHost; -(NSString*)pageName; -(NSString*)contextID; -(NSString*)senderID; //NDFN -(NSMutableDictionary*)uriOrFormOrCookiesElements; -(NSMutableDictionary*)uriElements; @end //==================================================================== @interface GSWRequest (GSWRequestL) -(void)_validateAPI; @end #endif //_GSWRequest_h__