ios - 使用restkit api objective-c 调用Web服务时出错
<p><p>我正在尝试调用网络服务并上传图片,</p>
<p>映射有问题,我花了好几个小时都没有成功。我得到的错误是:</p>
<blockquote>
<p>Error Domain=org.restkit.RestKit.ErrorDomain Code=1001 "No mappable
object representations were found at the key paths searched."
UserInfo={NSLocalizedDescription=No mappable object representations
were found at the key paths searched., NSLocalizedFailureReason=The
mapping operation was unable to find any nested object representations
at the key paths searched: user The representation inputted to the
mapper was found to contain nested object representations at the
following key paths: message, success This likely indicates that you
have misconfigured the key paths for your mappings., keyPath=null,
DetailedErrors=( )}</p>
</blockquote>
<p>还有调用网络服务的方法</p>
<pre><code>;
;
RKObjectMapping *responseMapping = ]; //create response and request mapping
[responseMapping addAttributeMappingsFromDictionary:@{@"phone": @"phone",
@"device_type": @"device_type",
@"device_token": @"device_token",
@"type": @"type",
@"email": @"email",
@"identity": @"identity",
@"date": @"date",
@"status": @"status",
@"name": @"name",
@"activation": @"activation",
@"image": @"image",
@"id": @"id"
}];
RKResponseDescriptor *responseDescriptor = [RKResponseDescriptor responseDescriptorWithMapping:responseMapping
method:RKRequestMethodPOST
pathPattern:@"AgentRegister"
keyPath:@"user"
statusCodes:];
;
delegate.objectManager.requestSerializationMIMEType =RKMIMETypeFormURLEncoded;
;
;
NSString *fcmToken = .token;
SignUpRequest *signUpRequest = [init];
signUpRequest.phone = txtPhoneNumber.text;
signUpRequest.email = txtEmail.text;
signUpRequest.identity=txtIdOrCity.text;
signUpRequest.device_type=@"IOS";
signUpRequest.device_token=fcmToken;
signUpRequest.type=@"1";
UIImage *image = ;
// Serialize the Article attributes then attach a file
NSMutableURLRequest *request = [ multipartFormRequestWithObject:signUpRequest method:RKRequestMethodPOST path:@"AgentRegister" parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:UIImagePNGRepresentation(image)
name:@"image"
fileName:@"photo.png"
mimeType:@"application/x-www-form-urlencoded"];
}];
RKObjectRequestOperation *operation = [ objectRequestOperationWithRequest:request success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult){
;
if(mappingResult.array.count !=0){
;
}else{
}
;
}failure:^(RKObjectRequestOperation *operation, NSError *error){
;
NSLog(@"%@",error.description);
UIAlertController *alert = [UIAlertController alertControllerWithTitle:@".."
message:@"حدث خطاء ما .. حاول مرة اخري" preferredStyle:UIAlertControllerStyleAlert];
UIAlertAction *okAction = [UIAlertAction actionWithTitle:@"Ok" style:UIAlertActionStyleDefault handler:^(UIAlertAction * _Nonnull action) {
}];
;
;
;
}];
[ enqueueObjectRequestOperation:operation];
}
</code></pre></p>
<br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
<p><p>此错误告诉您 <code>user</code> 路径中没有可用的内容。例如,如果您的响应是 JSON,则没有名为 <code>user</code> 的根键,只有 <code>message</code> 和 <code>success</code>:</p>
<p><code>{
"user": "<- 这个键不存在",
"message": "<- 这里有东西",
"success": "<- 这里也有东西"
}</code></p>
<p>您很可能需要将 <code>keyPath</code> 从 <code>user</code> 更改为 <code>success.user</code>。</p></p>
<p style="font-size: 20px;">关于ios - 使用restkit api objective-c 调用Web服务时出错,我们在Stack Overflow上找到一个类似的问题:
<a href="https://stackoverflow.com/questions/46686658/" rel="noreferrer noopener nofollow" style="color: red;">
https://stackoverflow.com/questions/46686658/
</a>
</p>
页:
[1]