문제

i AFHTTPClient의 하위 클래스를 만들고 일부 JSON 매개 변수를 서버에 보내려고합니다.

그러나 서버가 예상되는 콘텐츠 유형

에 응답합니다.
{(
    "text/json",
    "application/json",
    "text/javascript"
)}, got application/xml
.

Afnetworking FAQ

afhttpClient를 사용하는 경우 parameterEncoding 속성을 afjsonparameterEncoding로 설정하십시오.매개 변수 인수가있는 http 클라이언트의 모든 메소드 인수는 이제 전달 된 객체를 JSON 문자열에 인코딩하고 HTTP 본문 및 콘텐츠 형 헤드를 적절하게 설정합니다.

여기에서 해왔으나 서버는 콘텐츠 헤더를 인식하지 않도록합니다.잠재적 인 해결책을 알고있는 사람은 누구입니까?

다음은 다음과 같습니다.

- (void)getCompanyDataWithString:(NSString*)companySearchQuery 
      finish:(LBMarkitAPIRequestCompletionBlock)finishBlock
{
    [self registerHTTPOperationClass:[AFJSONRequestOperation class]];
    [self setParameterEncoding:AFJSONParameterEncoding];

    NSDictionary *params = [NSDictionary dictionaryWithObject:
        companySearchQuery forKey:@"input"];
    NSMutableURLRequest *searchQueryRequest = [self requestWithMethod:@"GET"
        path:kMarkitCompanyURL parameters:params];

    AFJSONRequestOperation *searchRequestOperation = [AFJSONRequestOperation 
        JSONRequestOperationWithRequest:searchQueryRequest 
        success:^(NSURLRequest *request, NSHTTPURLResponse *response, id json) 
        {
            NSLog(@"Response: %@", response);
            NSLog(@"JSON: %@",json);
            NSMutableArray *results = [NSMutableArray array];

            NSError *anError = [[NSError alloc] init];
            if ([json objectForKey:@"Message"]) 
            {
                NSString *message = [json objectForKey:@"Message"];
                anError = [[NSError alloc] initWithDomain:message
                                                     code:100 
                                                 userInfo:nil];
            }

            // Need some error handling code here
            for (id item in json) 
            {
                NSString *aName = [item objectForKey:@"Name"];
                NSString *aSymbol = [item objectForKey:@"Symbol"];
                NSString *anExchange = [item objectForKey:@"Exchange"];

                LBCompany *aCompany = [[LBCompany alloc] initWithName:aName 
                    Symbol:aSymbol Exchange:anExchange];
                [results addObject:aCompany];
            }
            // Need to run the passed in block after JSON 
            // Request Operation succeeds

            finishBlock(results,anError);
          }
        failure:^(NSURLRequest *request, NSHTTPURLResponse *response, 
            NSError *error, id JSON)
        {
            NSLog(@"request failed: %@",[error localizedDescription]);
            NSLog(@"Response: %@",response);
            NSLog(@"JSON: %@",JSON);
        }];

    [searchRequestOperation start];
    NSLog(@"JSON operation started");
}
.

도움이 되었습니까?

해결책

문제는 URL 서식이 었습니다.필자는 API 구현 매개 변수를 전송하는 API 구현 세부 사항을 알고 있으며 URI에서 JSON 출력을 지정하는 API 구현 세부 사항을 알지 못했습니다.

afnetworking과 관련한 문제가 없었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top