8

理想情况下,我想使用 POST 向推送通知服务器发送一个 HTTP 请求,其中包含设备令牌以及一些用户定义的设置。从那里我可以在服务器上设置一个 php 脚本来处理传入的数据并将其输入到一个 sql 表中。如果这是唯一的方法,我将如何从 Objective C 发起 HTTP 请求?

4

2 回答 2

35

您首先需要使用如下函数将设备令牌转换为十六进制字符串:

- (NSString*)stringWithDeviceToken:(NSData*)deviceToken {
  const char* data = [deviceToken bytes];
  NSMutableString* token = [NSMutableString string];

  for (int i = 0; i < [deviceToken length]; i++) {
    [token appendFormat:@"%02.2hhX", data[i]];
  }

  return [[token copy] autorelease];
}

然后你需要向你的服务器发出请求:

NSURL* url = [NSURL URLWithString:[NSString stringWithFormat:@"http://example.com/script.php?token=%@", DEVICE_TOKEN]];
NSMutableURLRequest* request = [[[NSMutableRequest alloc] initWithURL:url] autorelease];
NSURLConnection* connection = [NSURLConnection connectionWithRequest:request delegate: self];
于 2010-01-02T07:26:04.630 回答
10

另一种方式:

NSString * tokenAsString = [[[deviceToken description] 
stringByTrimmingCharactersInSet:[NSCharacterSet characterSetWithCharactersInString:@"<>"]] 
stringByReplacingOccurrencesOfString:@" " withString:@""];
于 2011-10-29T08:10:27.473 回答