1

我想创建一个 iPhone 应用程序来将数据发送到 Rest API 服务。如果数据是定义为 geoX#35#geoY#65 的字符串,我应该使用哪个 NSS 方法。正在考虑 NSString 和 NSMutablerequest 来发出我的请求并定义我的字符串,但这在 atm 上不起作用。另外我正在使用 NSURLconnection 建立与服务器的连接(也许这也是错误的)。任何可以帮助的人吗?

提前致谢。

4

1 回答 1

3

您的连接数据使用特殊字符,如果您尝试使用 NSURLConnection 的 GET 方法执行此操作。它将显示连接错误。为此,您必须使用 POST 方法,例如:

NSData *body = nil;
NSString *contentType = @"text/html; charset=utf-8";
NSURL *finalURL = @"YOUR URL WITH the ?input=";
NSString *yourString = @"geoX#35#geoY#65"; 
contentType = @"application/x-www-form-urlencoded; charset=utf-8";
body = [[NSString stringWithFormat:@"%@", yourString] dataUsingEncoding:NSUTF8StringEncoding];
if (nil==finalURL) {
    finalURL = url;
}

NSMutableDictionary* headers = [[[NSMutableDictionary alloc] init] autorelease];
[headers setValue:contentType forKey:@"Content-Type"];
[headers setValue:mimeType forKey:@"Accept"];
[headers setValue:@"no-cache" forKey:@"Cache-Control"];
[headers setValue:@"no-cache" forKey:@"Pragma"];
[headers setValue:@"close" forKey:@"Connection"];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:finalURL
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:60.0];
[request setHTTPMethod:@"POST"];

[request setAllHTTPHeaderFields:headers];

[request setHTTPBody:body];

self.conn = [NSURLConnection connectionWithRequest:request delegate:self];
于 2012-09-28T14:44:35.020 回答