从Objective C app发送XML数据

时间:2012-08-20 22:11:36

标签: iphone objective-c xml

我想从Objective C应用程序将XML格式的param发送到Web服务而不会得到响应(我不需要处理它)。这样做的最好和最快的方法是什么?

假设我有下一个XML:

NSString *xmlParams=[NSString stringWithFormat:@"<?xml version=\"1.0\" encoding=\"utf-8\"?><R><Root><Grade>33</grade></Root></R>"];

发送XML的地址是: www.myServer.com \ service.asmx

xmlParams发送到该地址的实施是什么?

1 个答案:

答案 0 :(得分:0)

我刚回答了一个类似的问题,所以我只会在这里复制并粘贴一些代码:

- (void)myFunctionToSendDataToTheServer
{

    MKNetworkEngine *engine = [[MKNetworkEngine alloc] initWithHostName:@"myServer.com"];

    MKNetworkOperation *op = [engine operationWithPath:@"/service.asmx"];

    op.postDataEncoding = MKNKPostDataEncodingTypeCustom;

    [op setCustomPostDataEncodingHandler:^NSString *(NSDictionary *postDataDict) {
        return [NSString stringWithFormat:@"<R><Root><Grade>33</grade></Root></R>"];
    } forType:@"application/xml"];

    [engine enqueueOperation:op];
}

我建议添加第三方库来处理网络代码。在这种情况下,我使用了MKNetworkKit

代码行“[engine enqueueOperation:op];”是将请求发送到服务器的部分。 如果你改变主意并想要或者需要处理响应,那么在“[engine enqueueOperation:op];”之前添加类似的内容:“

[op onCompletion:^(MKNetworkOperation *completedOperation) {

        NSLog(@"Successful response from server: %@", [completedOperation responseString]);

    } onError:^(NSError *error) {

        NSLog(@"Error from server; %@", [error debugDescription]);
    }];