2012-01-16 102 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