Skip to content

Commit c7615bc

Browse files
committed
Fixed form param string encoding issue.
1 parent d95fc53 commit c7615bc

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

STNetTaskQueue/STHTTPNetTaskQueueHandler.m

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,11 @@ - (NSString *)queryStringFromParameters:(NSDictionary *)parameters
289289
[parameters enumerateKeysAndObjectsUsingBlock:^(NSString *key, id value, BOOL *stop) {
290290
if ([value isKindOfClass:[NSArray class]]) {
291291
for (id element in value) {
292-
[self appendKeyValueToString:queryString withKey:key value:[element description]];
292+
[self appendKeyValueToString:queryString withKey:key value:[element description] percentEncoding:NO];
293293
}
294294
}
295295
else {
296-
[self appendKeyValueToString:queryString withKey:key value:[value description]];
296+
[self appendKeyValueToString:queryString withKey:key value:[value description] percentEncoding:NO];
297297
}
298298
}];
299299
[queryString deleteCharactersInRange:NSMakeRange(queryString.length - 1, 1)];
@@ -321,11 +321,11 @@ - (NSData *)bodyDataFromParameters:(NSDictionary *)parameters requestType:(STHTT
321321
[parameters enumerateKeysAndObjectsUsingBlock:^(NSString *key, id value, BOOL *stop) {
322322
if ([value isKindOfClass:[NSArray class]]) {
323323
for (id element in value) {
324-
[self appendKeyValueToString:bodyString withKey:key value:[element description]];
324+
[self appendKeyValueToString:bodyString withKey:key value:[element description] percentEncoding:YES];
325325
}
326326
}
327327
else {
328-
[self appendKeyValueToString:bodyString withKey:key value:[value description]];
328+
[self appendKeyValueToString:bodyString withKey:key value:[value description] percentEncoding:YES];
329329
}
330330
}];
331331
[bodyString deleteCharactersInRange:NSMakeRange(bodyString.length - 1, 1)];
@@ -365,9 +365,13 @@ - (NSData *)formDataFromParameters:(NSDictionary *)parameters datas:(NSDictionar
365365
return formData;
366366
}
367367

368-
- (void)appendKeyValueToString:(NSMutableString *)string withKey:(NSString *)key value:(NSString *)value
368+
- (void)appendKeyValueToString:(NSMutableString *)string withKey:(NSString *)key value:(NSString *)value percentEncoding:(BOOL)percentEncoding
369369
{
370-
[string appendFormat:@"%@=%@&", key, [value stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
370+
if (percentEncoding) {
371+
key = [key stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
372+
value = [value stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
373+
}
374+
[string appendFormat:@"%@=%@&", key, value];
371375
}
372376

373377
- (void)appendToFormData:(NSMutableData *)formData withKey:(NSString *)key value:(NSString *)value

0 commit comments

Comments
 (0)