2012-01-16 110 views
0

我发送nsurlconection请求与同步方法如下。 其模拟器工作正常,但不能在设备上工作。NSURLConnection返回0字节数据

这里是我的代码

/////// 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]; 

请检查我的代码,并帮助我在哪里的问题。

感谢&问候 Shivam

+0

它有什么功能的设备上到底是什么?什么是设备上的returnData? – bandejapaisa 2012-01-16 13:46:07

+0

它返回0字节的数据 – 2012-01-16 13:53:31

回答

-1

实现此代码

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

在这一行:

NSURL *url=[NSURL URLWithString:strUrl]; 

是什么strUrl。它在哪里申报和分配?

我不确定,但看起来您的网址可以从您的Mac(可能是您的局域网上的资源)访问,但不是来自您的设备。 (您的设备通过其他Wi-Fi网络或3G连接?)。

尝试从Mac上创建Wi-Fi网络,并将设备连接到此网络。 希望这可以解决问题。

+0

是的,你是对的,它可能是问题,但。有很多webservices运行在同一台服务器上,并且这些数据是通过get方法返回数据的 – 2012-01-16 13:54:21

+0

或者把这个url放到手机上的safari中,看看你得到了什么结果。 – bandejapaisa 2012-01-16 14:02:31