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.

Другие вопросы по тегам