парсинг XML методом Post + iphone - PullRequest
2 голосов
/ 21 сентября 2011

У меня проблема с xmlparsing методом post.

API URL :  http://XXX.XXX.X.XX/api/user.php
Function Name : getUserList
Sample XML :
<root>
    <data>
        <id>0</id>
        <search></search>
    </data>
</root>

Теперь я использую: -

// setting up the URL to post to
NSString *urlString = @"http://XXX.XXX.X.XX/api/user.php";

// setting up the request object now
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:[NSURL URLWithString:urlString]];
[request setHTTPMethod:@"POST"];        

Но как мне сделать пост HTMLbody частью этого ..

Означает, где и как я должен поместить функциональное имя и образец XML в коде

Мой отредактированный вопрос: : -

  NSString *urlString = @" http://192.168.6.79/silverAPI/api/user.php/getUserList";

    // setting up the request object now
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:urlString]];
    [request setHTTPMethod:@"POST"];
    NSString * str = @"<root><data><id>0</id><search>a</search></data></root>";
    NSString * message= [NSString stringWithFormat:@"/getUserList mydata=%@", str];
    [request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]];
    [request addValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];





    // now lets make the connection to the web
    NSData *returnData = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *returnString = [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];

    NSLog(@"Responce==>%@",returnString);

Но я становлюсь черным в ответ. Пожалуйста, помогите мне .. мой

 NSString *urlString = @" http://192.168.6.79/silverAPI/api/user.php/getUserList";

А

NSString * str = @ "0a"; NSString * message = [NSString stringWithFormat: @ "/ getUserList mydata =% @ ", str]; [запрос setHTTPBody: [сообщение dataUsingEncoding: NSUTF8StringEncoding]]; [request addValue: @ "application / xml; charset = utf-8" forHTTPHeaderField: @ "Content-Type"];

Эта часть кода верна ??

Ответы [ 2 ]

1 голос
/ 21 сентября 2011

Вы можете установить html body, используя метод - (void)setHTTPBody:(NSData *)data. Например:

[request setHTTPBody:[message dataUsingEncoding:NSUTF8StringEncoding]];

где сообщение, в вашем случае, xml.

Также вам нужно добавить этот код, чтобы помочь серверу определить тип отправляемых данных:

[request addValue:@"application/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];

Если вы хотите установить дополнительные флаги для вашего запроса, вы можете использовать метод - (void)setValue:(NSString *)value forHTTPHeaderField:(NSString *)field.

0 голосов
/ 30 сентября 2011

То, что вы сделали, прекрасно, пожалуйста, проверьте на стороне сервера, правильно ли поступает ответ оттуда, отправив тот же запрос или нет.

...