QUCHTTPRequest.h
3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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
//
// QUCHTTPRequest.h
//
// Created by Sam Vermette on 20.09.11.
// Copyright 2011 samvermette.com. All rights reserved.
//
// https://github.com/samvermette/SVHTTPRequest
//
#import <Foundation/Foundation.h>
#import <AvailabilityMacros.h>
typedef void (^QUCHTTPRequestCompletionHandler)(id response, NSHTTPURLResponse *urlResponse,NSDictionary *responseCookie,NSError *error);
typedef void (^QUCHTTPRequestProcessHandler)(float progress);
enum {
QUCHTTPRequestMethodGET = 0,
QUCHTTPRequestMethodPOST,
QUCHTTPRequestMethodPUT,
QUCHTTPRequestMethodDELETE,
QUCHTTPRequestMethodHEAD
};
typedef NSUInteger QUCHTTPRequestMethod;
@interface QUCHTTPRequest : NSOperation
+ (QUCHTTPRequest*)GET:(NSString*)address parameters:(NSDictionary*)parameters cookie:(NSString *) cookie completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)GET:(NSString*)address parameters:(NSDictionary*)parameters cookie:(NSString *) cookie saveToPath:(NSString*)savePath progress:(QUCHTTPRequestProcessHandler)progressBlock completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)POST:(NSString*)address parameters:(NSObject*)parameters cookie:(NSString *) cookie completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)POST:(NSString *)address parameters:(NSObject *)parameters cookie:(NSString *) cookie progress:(QUCHTTPRequestProcessHandler)progressBlock completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)PUT:(NSString*)address parameters:(NSObject*)parameters cookie:(NSString *) cookie completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)DELETE:(NSString*)address parameters:(NSDictionary*)parameters cookie:(NSString *) cookie completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)HEAD:(NSString*)address parameters:(NSDictionary*)parameters cookie:(NSString *) cookie completion:(QUCHTTPRequestCompletionHandler)completionBlock;
+ (QUCHTTPRequest*)RequestWithGetOrPost:(QUCHTTPRequestMethod)method Address:(NSString *)address parameters:(NSDictionary *)parameters cookie:(NSString *)cookie saveToPath:(NSString *)savePath progress:(QUCHTTPRequestProcessHandler)progressBlock completion:(QUCHTTPRequestCompletionHandler)completionBlock;
- (QUCHTTPRequest*)initWithAddress:(NSString*)urlString
method:(QUCHTTPRequestMethod)method
parameters:(NSObject*)parameters
cookie:(NSString *)cookie
completion:(QUCHTTPRequestCompletionHandler)completionBlock;
- (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field;
+ (void)setDefaultTimeoutInterval:(NSTimeInterval)interval;
+ (void)setDefaultUserAgent:(NSString*)userAgent;
@property (nonatomic, strong) NSString *userAgent;
@property (nonatomic, readwrite) BOOL sendParametersAsJSON;
@property (nonatomic, readwrite) NSURLRequestCachePolicy cachePolicy;
@property (nonatomic, readwrite) NSUInteger timeoutInterval;
@end
// the following methods are only to be accessed from QUCHTTPRequest.m and QUCHTTPClient.m
@protocol QUCHTTPRequestPrivateMethods <NSObject>
@property (nonatomic, strong) NSString *requestPath;
- (QUCHTTPRequest*)initWithAddress:(NSString*)urlString
method:(QUCHTTPRequestMethod)method
parameters:(NSObject*)parameters
cookie:(NSString *)cookie
saveToPath:(NSString*)savePath
progress:(QUCHTTPRequestProcessHandler)progressBlock
completion:(QUCHTTPRequestCompletionHandler)completionBlock;
- (void)signRequestWithUsername:(NSString*)username password:(NSString*)password;
@end