我想将字节发送到服务器。所以我不知道哪些数据类型用于字节。我使用了“%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];
}
请指导我。
感谢。
答案 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)
答案 4 :(得分:0)
如果您使用任意数据,请首先对其进行去除,然后使用%s。在服务器端,您可以在接收时解码它。所以基本上做一个格式为“%02x”的重复sprintf并附加这些。 在那种情况下,它会在url-strings中生存,之后?在你的例子中。