0

restkit putobject を使用して put リクエストを送信し、サーバーから 200 と文字列として応答を受信したいのですが、サーバーは 400 を返し、本文を受信して​​いないと言っています。リクエストはリクエストです: https://myserver.com/api/v1/f1/ /update body = "somevalue" レスポンスは 200 "somevalue"

このために、私はレストキット実装リクエストhttps://myserver.com/api/v1 パス f1//updateを持っています

ここにコードがあります

RKObjectMapping *responseMapping = [RKObjectMapping mappingForClass:[ModelUpdate class]];
 [responseMapping addPropertyMapping:[RKAttributeMapping attributeMappingFromKeyPath:nil toKeyPath:@"status"]];

RKResponseDescriptor *responseDescriptor =
[RKResponseDescriptor responseDescriptorWithMapping:responseMapping
                                             method:RKRequestMethodPUT
                                        pathPattern:path
                                            keyPath:nil
                                        statusCodes:[NSIndexSet indexSetWithIndex:200]];
*objectPath=path;
RKRequestDescriptor *requestDescriptor = [RKRequestDescriptor requestDescriptorWithMapping:[responseMapping inverseMapping]   objectClass:[ModelUpdate class] rootKeyPath:nil method:RKRequestMethodAny];

[rkObjectManager addResponseDescriptor:responseDescriptor];
[rkObjectManager addRequestDescriptor:requestDescriptor];
rkObjectManager.requestSerializationMIMEType = RKMIMETypeJSON;
[rkObjectManager putObject:someObj path:path parameters:nil success:^(RKObjectRequestOperation *operation, RKMappingResult *mappingResult) {

    id updateField = mappingResult.array;
    [sDFWebInterface->m_DFWebInterfaceData receiveResponse:updateField forRequestNo:requestNo error:nil];
    NSLog(@"Success");

} failure:^(RKObjectRequestOperation *operation, NSError *error) {
    NSLog(@"Error from server in Put Request");
    [sDFWebInterface HandleServerAPIError:requestNo :error];
}];
  /////Modelupdate class
 @interface ModelUpdate : NSObject
 @property(nonatomic,strong)NSString* status;// : 

  @end
4

1 に答える 1

0

リクエスト記述子は を指定objectClass:[ModelUpdate class]しているため、 class のオブジェクトを指定した場合にのみ使用されますModelUpdate

someobj basically a string object someobj="new value"仕様に一致しないため、リクエストは処理されません。ログにそれに関するエラーが表示されるはずです。

単純な文字列を送信し、応答で単純な文字列を取得するだけの場合は、RestKit は実際には必要ありません。の内外で文字列を処理する場合はModelUpdate、適切なインスタンスを提供する必要があります。

于 2015-11-25T17:47:12.213 に答える