HTTP PUT или DELETE запрос с JSONHTTPClient в iOS и OS-X
Я только начал работать с JSONModel. JSONHTTPClient может обрабатывать асинхронный сетевой запрос с поддержкой методов "GET" и "POST". Есть ли выход для выполнения запроса "PUT" или "DELETE" с помощью JSONHTTPClient?
2 ответа
Во всяком случае, я пришел с самым глупым решением, добавив новые методы в JSONHTTPClient.
+(void)putJSONFromURLWithString:(NSString)urlString params:(NSDictionary)params completion:(JSONObjectBlock)completeBlock;
+(void)putJSONFromURLWithString:(NSString)urlString bodyString:(NSString)bodyString completion:(JSONObjectBlock)completeBlock;
+(void)putJSONFromURLWithString:(NSString)urlString bodyData:(NSData)bodyData completion:(JSONObjectBlock)completeBlock;
Я также добавил новый const NSString для поддержки "PUT"
NSString* const kHTTPMethodPUT = @"PUT";
+(void)putJSONFromURLWithString:(NSString*)urlString params:(NSDictionary*)params completion:(JSONObjectBlock)completeBlock
{
[self JSONFromURLWithString:urlString method:kHTTPMethodPUT
params:params
orBodyString:nil completion:^(id json, JSONModelError* e) {
if (completeBlock) completeBlock(json, e);
}];
}
+(void)putJSONFromURLWithString:(NSString*)urlString bodyString:(NSString*)bodyString completion:(JSONObjectBlock)completeBlock
{
[self JSONFromURLWithString:urlString method:kHTTPMethodPUT
params:nil
orBodyString:bodyString completion:^(id json, JSONModelError* e) {
if (completeBlock) completeBlock(json, e);
}];
}
+(void)putJSONFromURLWithString:(NSString*)urlString bodyData:(NSData*)bodyData completion:(JSONObjectBlock)completeBlock
{
[self JSONFromURLWithString:urlString method:kHTTPMethodPUT
params:nil
orBodyString:[[NSString alloc] initWithData:bodyData encoding:defaultTextEncoding]
completion:^(id json, JSONModelError* e) {
if (completeBlock) completeBlock(json, e);
}];
}
Я также создал проблему на GitHub. Надеюсь получить ответ оттуда.
Глядя на документацию здесь
http://jsonmodel.com/docs/Classes/JSONHTTPClient.html
Не похоже, что ты можешь это сделать. Вам придется использовать другой подход, чтобы сделать это. Может быть другой структурой или NSURLSessions или написать свою собственную категорию через класс JSONHTTPClient.