[英]iOS Get JSON response from AFNetworking HTTP POST method with JSON parameters
在https://api.hackerearth.com/codemonk/v1/topicdetail/
上使用JSON参数发布时出现404
错误。 服务器使用POST HTTP方法获取topic
的详细信息,并且成功时需要JSON响应。 POST参数是topic
对象的id
。 POST参数应为JSON。 我正在使用AFNetworking如下-
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *params = [NSDictionary dictionaryWithObject:@1 forKey:@"id"];
NSString *str = @"https://api.hackerearth.com/codemonk/v1/topic-detail/";
NSString *encodedStr = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
[manager POST:encodedStr
parameters:params
success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"responseObject : %@",responseObject);
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
NSLog(@"error : %@", error.localizedDescription);
}];
这是常规内容,但是不知道为什么我现在似乎无法正确处理。 我仅收到404 Page Not Found
错误。 当然,这不是服务器端的问题。 有帮助吗?
也许这会有所帮助。
AFJSONRequestSerializer *requestSerializer = [AFJSONRequestSerializer serializer];
[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[requestSerializer setValue:@"application/json" forHTTPHeaderField:@"Accept"];
operationManagerInstance.requestSerializer = requestSerializer;
=============更新
复制您的网址时,我有404。 这是因为主题细节之间的连字符实际上不是连字符。 这是一个特殊字符,不起作用。
https://api.hackerearth.com/codemonk/v1/topic -detail /
相反,我删除了它并手动键入连字符,它可以正常工作。
删除以下行
NSString *encodedStr = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
请尝试以下操作:
AFHTTPRequestOperationManager *manager = [AFHTTPRequestOperationManager manager];
manager.requestSerializer = [AFJSONRequestSerializer serializer];
NSDictionary *params = [NSDictionary dictionaryWithObject:@1 forKey:@"id"];
NSString *str = @"https://api.hackerearth.com/codemonk/v1/topic-detail/";
[manager POST:str
parameters:params
success:^(AFHTTPRequestOperation * _Nonnull operation, id _Nonnull responseObject) {
NSLog(@"responseObject : %@",responseObject);
} failure:^(AFHTTPRequestOperation * _Nullable operation, NSError * _Nonnull error) {
NSLog(@"error : %@", error.localizedDescription);
}];
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.