Я пытаюсь использовать шаблон, аналогичный на этот пост, в котором описывается выполнение PUT/POST для RESTful API, но для GET.
Мой исходный код выглядит почти так же, за исключением того, что я использовал ключевое слово GET:
. Я быстро обнаружил, что вместо отправки тела JSON вместо URL-адреса кодируются параметры. Это не упоминается в документации класса AFJSONSerializer
. Вы должны перейти к документации суперкласса (AFHTTPSerializer
) и прочитать его свойства, где вы найдете о HTTPMethodsEncodingParametersInURI. По умолчанию этот набор заполняется HEAD, GET и DELETE. Итак, для этих типов запросов сериализатор JSON, по-видимому, возвращается к своему родительскому классу для поведения?
Итак, я собрал следующий код:
AFHTTPSessionManager* manager = [AFHTTPSessionManager manager];
manager.securityPolicy.allowInvalidCertificates = YES;
manager.requestSerializer = [AFJSONRequestSerializer serializer];
manager.requestSerializer.HTTPMethodsEncodingParametersInURI = [NSSet set];
[manager.requestSerializer setAuthorizationHeaderFieldWithUsername: currentUser() password: currentPassword()];
[manager
GET: @"https://172.16.214.214:44321/trees"
parameters: [NSDictionary dictionary]
success:^(NSURLSessionDataTask* task, id responseObject){
NSLog(@"Response: %@", responseObject);}
failure:^(NSURLSessionDataTask* task, NSError* error){
NSLog(@"Error: %@", error);}];
Строка, которая устанавливает HTTPMethodsEncodingParametersInURI = [NSSet set]
, предназначена для того, чтобы позволить мне получить параметры в кодировке JSON, как я хотел, и для GET. К сожалению, я ничего не вижу на сервере, когда использую это, и получаю следующее в своей консоли ошибок:
2013-12-10 10:11:14.149 myValve[957:60b] Error: Error Domain=NSURLErrorDomain Code=-1005 "The
network connection was lost." UserInfo=0x17e5d4b0
{NSErrorFailingURLStringKey=https://172.16.214.214:44321/trees,
NSErrorFailingURLKey=https://172.16.214.214:44321/trees, NSLocalizedDescription=The network
connection was lost., NSUnderlyingError=0x17e53240 "The network connection was lost."}
Чего мне еще не хватает?