Afnetworking HTTP 클라이언트가 JSON 매개 변수를 보내지 않습니다
-
12-12-2019 - |
문제
i AFHTTPClient
의 하위 클래스를 만들고 일부 JSON 매개 변수를 서버에 보내려고합니다.
그러나 서버가 예상되는 콘텐츠 유형
에 응답합니다.{(
"text/json",
"application/json",
"text/javascript"
)}, got application/xml
.
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과 관련한 문제가 없었습니다.
제휴하지 않습니다 StackOverflow