iPhone中Objective C中的字节数据类型

时间:2010-08-05 14:55:12

标签: iphone byte types

我想将字节发送到服务器。所以我不知道哪些数据类型用于字节。我使用了“%s”并将字节发送到服务器。但在服务器端,他们只收到6个字节。但我的情况我想发送32个字节到服务器。那么使用哪种数据类型?

编辑: -

我的示例代码是

 -(void)sendDevice:(NSData *)data // data value comes 32 bytes.
 {
       NSString *urlString = [NSString stringWithFormat: @"http://MyserverURL.php?Dataid=%????",[data bytes]];

       NSURL *urlToSend2 = [[NSURL alloc] initWithString:urlString];

       NSURLRequest *urlRequest2 = [NSURLRequest requestWithURL:urlToSend2              cachePolicy:NSURLRequestReturnCacheDataElseLoad timeoutInterval:50];                                                     

       NSURLConnection *theconnection=[[NSURLConnection alloc] initWithRequest:urlRequest2 delegate:self]; 

      [theconnection start];

 }

请指导我。

感谢。

5 个答案:

答案 0 :(得分:1)

NSData是通常用于字节数据的类。看看它的文档,看看你的需要是什么。

答案 1 :(得分:1)

正如Jesse所说,原始字节最好存储在NSData实例中。要传输到Web服务器,您可能希望创建NSData字节的Base64编码字符串表示。为此,我建议this CocoaDev wiki page底部的任何一个类别。

答案 2 :(得分:1)

看起来你使用POST数据到服务器?

像:-----

- (Boolean) pushSync: (NSString *) fromContext ToContext: (NSString *) toContext
{

    Boolean success = FALSE;

    NSString *exported = [self exportData: fromContext ToContext: toContext];

    if( exported != nil )
    {

        NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL: [self getPushURL]];

        if( request != nil )

        {

           NSURLResponse * response = nil;

           NSError * error = nil;

           [request setValue:@"text/xml" forHTTPHeaderField:@"Content-Type"];

           NSMutableData *postBody = [NSMutableData data];

           [postBody appendData:[exporteddataUsingEncoding:NSUTF8StringEncoding]];

           [request setHTTPBody:postBody];

           [request setHTTPMethod:@"POST"];

           NSData *xmlResult = [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];   

           if( xmlResult )

           {
            [self parseXMLResult:xmlResult];

              if([replyStatus isEqualToString:@"true"])

                success = TRUE;
          }
      }

  }

   return success;

}

答案 3 :(得分:0)

看起来你正试图将数据发布到服务器上?

看看这个问题它可能类似并提供答案

Sending POST data from iphone over SSL HTTPS

答案 4 :(得分:0)

如果您使用任意数据,请首先对其进行去除,然后使用%s。在服务器端,您可以在接收时解码它。所以基本上做一个格式为“%02x”的重复sprintf并附加这些。 在那种情况下,它会在url-strings中生存,之后?在你的例子中。