Changing multipartFormRequestWithMethod:... to black-list GET and HEAD rather than whitelist particular methods.
Enforcing non-nil, non-GET / HEAD method parameter requirement
This commit is contained in:
parent
30aeb09d2f
commit
b10f66062c
2 changed files with 5 additions and 4 deletions
|
|
@ -254,15 +254,13 @@ typedef enum {
|
||||||
/**
|
/**
|
||||||
Creates an `NSMutableURLRequest` object with the specified HTTP method and path, and constructs a `multipart/form-data` HTTP body, using the specified parameters and multipart form data block. See http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2
|
Creates an `NSMutableURLRequest` object with the specified HTTP method and path, and constructs a `multipart/form-data` HTTP body, using the specified parameters and multipart form data block. See http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.2
|
||||||
|
|
||||||
@param method The HTTP method for the request. Must be either `POST`, `PUT`, or `DELETE`.
|
@param method The HTTP method for the request. This parameter must not be `GET` or `HEAD`, or `nil`.
|
||||||
@param path The path to be appended to the HTTP client's base URL and used as the request URL.
|
@param path The path to be appended to the HTTP client's base URL and used as the request URL.
|
||||||
@param parameters The parameters to be encoded and set in the request HTTP body.
|
@param parameters The parameters to be encoded and set in the request HTTP body.
|
||||||
@param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `AFMultipartFormData` protocol. This can be used to upload files, encode HTTP body as JSON or XML, or specify multiple values for the same parameter, as one might for array values.
|
@param block A block that takes a single argument and appends data to the HTTP body. The block argument is an object adopting the `AFMultipartFormData` protocol. This can be used to upload files, encode HTTP body as JSON or XML, or specify multiple values for the same parameter, as one might for array values.
|
||||||
|
|
||||||
@discussion Multipart form requests are automatically streamed, reading files directly from disk along with in-memory data in a single HTTP body. The resulting `NSMutableURLRequest` object has an `HTTPBodyStream` property, so refrain from setting `HTTPBodyStream` or `HTTPBody` on this request object, as it will clear out the multipart form body stream.
|
@discussion Multipart form requests are automatically streamed, reading files directly from disk along with in-memory data in a single HTTP body. The resulting `NSMutableURLRequest` object has an `HTTPBodyStream` property, so refrain from setting `HTTPBodyStream` or `HTTPBody` on this request object, as it will clear out the multipart form body stream.
|
||||||
|
|
||||||
@warning An exception will be raised if the specified method is not `POST`, `PUT` or `DELETE`.
|
|
||||||
|
|
||||||
@return An `NSMutableURLRequest` object
|
@return An `NSMutableURLRequest` object
|
||||||
*/
|
*/
|
||||||
- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method
|
- (NSMutableURLRequest *)multipartFormRequestWithMethod:(NSString *)method
|
||||||
|
|
|
||||||
|
|
@ -465,6 +465,9 @@ static void AFNetworkReachabilityReleaseCallback(const void *info) {}
|
||||||
parameters:(NSDictionary *)parameters
|
parameters:(NSDictionary *)parameters
|
||||||
constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block
|
constructingBodyWithBlock:(void (^)(id <AFMultipartFormData> formData))block
|
||||||
{
|
{
|
||||||
|
NSCParameterAssert(method);
|
||||||
|
NSCParameterAssert(![method isEqualToString:@"GET"] && ![method isEqualToString:@"HEAD"]);
|
||||||
|
|
||||||
NSMutableURLRequest *request = [self requestWithMethod:method path:path parameters:nil];
|
NSMutableURLRequest *request = [self requestWithMethod:method path:path parameters:nil];
|
||||||
|
|
||||||
__block AFStreamingMultipartFormData *formData = [[AFStreamingMultipartFormData alloc] initWithURLRequest:request stringEncoding:self.stringEncoding];
|
__block AFStreamingMultipartFormData *formData = [[AFStreamingMultipartFormData alloc] initWithURLRequest:request stringEncoding:self.stringEncoding];
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue