0

現在、ASIHttpRequestからMKNetworkKitに切り替えようとしていますが、投稿データに問題があります。MKNetworkKitで次のことを行うにはどうすればよいですか?

ASIHTTPRequest * request = [ASIHTTPRequest requestWithURL:url];

[request appendPostData:[[NSString stringWithFormat:@ "{\" version \ ":%@、\" values \ ":[{\" device \ ":\"%@ \ "、\" os \ ":\" ios \ "、\" version \ ":\"%@ \ "}]}"、VERSION、[[UIDevice currentDevice] uniqueIdentifier]、[[UIDevice currentDevice] systemVersion]] dataUsingEncoding:NSUTF8StringEncoding]];

MKNetworkKitで投稿データを追加する方法がわかりません。addDataメソッドを見つけましたが、値{}内に追加のデータを使用して上記のようなデータを追加することはできません。

誰かが方法を知っていますか?

4

2 に答える 2

0

これを試して:

MKNetworkOperation *op = [self operationWithPath:INIT_URL params:body httpMethod:@"POST"    ssl:YES];
[op setPostDataEncoding:MKNKPostDataEncodingTypeJSON];//This is important
[op addCompletionHandler:^(MKNetworkOperation *completedOperation)
于 2013-11-29T17:26:21.277 に答える
-1

私はこれにかなり慣れていませんが、私がしていることをあなたと共有させてください。

まず、エンジンを作成します (私が呼び出すサービスはどこにありますか)。

私のインターフェースでは:

@interface INGMainViewController (){
    MKNetworkEngine *engine_;

}

私の初期化では:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil

  {
        self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
        if (self) {
            engine_= [[MKNetworkEngine alloc] initWithHostName:@"www.xxx.gr"];
            // Custom initialization
        }
        return self;
    }

次に、サービスを呼び出す関数で次のようにします。

NSDictionary *formParams = [NSDictionary dictionaryWithObjectsAndKeys:
                            theClientCode, @"ClientCode",
                            theContractNumber, @"ContractCode",
                            theAppleID, @"AppleID",
                            @" ", @"AndroidID",
                            @" ", @"WindowsID",
                            uid, @"AppleDeviceID",
                            @" ", @"AndroidDeviceID",
                            @" ", @"WindowsDeviceID",
                            theCellPhone, @"TelephoneNumber"
                            , nil];

    MKNetworkOperation *operation = [self.engine operationWithPath:@"/services/Authentication.ashx"
                                                            params: formParams
                                                        httpMethod:@"POST"];


    [operation addCompletionHandler:
     ^(MKNetworkOperation *operation)
     {
         NSLog(@" Operation succeds: %@", [operation responseString]);
     }
                       errorHandler:^(MKNetworkOperation *errorOperation, NSError *error)
                        {
                           NSLog(@" Errors occured: %@", error);
                        }];
    [self.engine enqueueOperation:operation];
}

...それだけです。

もちろん、まだいくつかの問題に直面していますが、キットに由来するものではないと思います。

お役に立てば幸いです。

于 2013-04-11T09:56:48.493 に答える