NSURLConnection возвращает 0-байтовые данные - PullRequest
0 голосов
/ 16 января 2012

Я отправляю запрос nsurlconection с синхронным методом, как показано ниже.он прекрасно работает с симулятором, но не работает на устройствах.

вот мой код

/////// FOR POST
    NSString *postData=[NSString stringWithFormat:@"message=%@",
                         [[dicGlobal valueForKey:@"giftMessage"] stringByURLEncode]];

    NSData *myRequestData = [ NSData dataWithBytes: [ postData UTF8String ] length: [ postData length]];

    NSLog(@"%@",myRequestData);

    NSURL *url=[NSURL URLWithString:strUrl];
    NSMutableURLRequest *request=[[NSMutableURLRequest alloc] initWithURL:url];
    [ request setHTTPMethod: @"POST" ];
    [ request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
    [ request setHTTPBody: myRequestData ];
    NSURLResponse *response;
    NSError *error;
    NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error];
    if (returnData) {
        NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
        NSLog(@"%@",content);
        TBXML *tbxml=[TBXML tbxmlWithXMLString:content];

Пожалуйста, проверьте мой код и помогите мне, где проблема.

СпасибоС уважением, Шивам

Ответы [ 2 ]

0 голосов
/ 16 января 2012

Реализовать этот код

 NSString *postData=[NSString stringWithFormat:@"message=%@",
                             [[dicGlobal valueForKey:@"giftMessage"] stringByURLEncode]];

        NSData *myRequestData = [ NSData dataWithBytes: [ postData UTF8String ] length: [ postData length]];

        NSLog(@"%@",myRequestData);

        NSURL *url=[NSURL URLWithString:strUrl];
      NSMutableURLRequest *postRequest = [NSMutableURLRequest requestWithURL:url
                                                                   cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                               timeoutInterval:30.0];
        [ request setHTTPMethod: @"POST" ];
        [ request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"];
        [ request setHTTPBody: myRequestData ];
        NSURLResponse *response;
        NSError *error;
        NSData *returnData = [NSURLConnection sendSynchronousRequest: request returningResponse:&response error:&error];
        if (returnData) {
            NSString *content = [NSString stringWithUTF8String:[returnData bytes]];
            NSLog(@"%@",content);
            TBXML *tbxml=[TBXML tbxmlWithXMLString:content];
0 голосов
/ 16 января 2012

В этой строке:

NSURL *url=[NSURL URLWithString:strUrl];

что такое strUrl. Где это объявлено и назначено?

Я не уверен, но похоже, что ваш URL доступен с вашего Mac (возможно, это ресурс в вашей локальной сети), но не с вашего устройства. (Ваше устройство подключается через какую-либо другую сеть Wi-Fi или 3G?).

Попробуйте создать сеть Wi-Fi на своем Mac и подключить свое устройство к этой сети. Надеюсь, что это решит проблему.

...