iOSでPOSTリクエストを送る

http://blog.be-style.jpn.com/article/56333442.html

注意点としてはURLエンコードしないといけない。
http://www.crossbridge.biz/objectivec-urlencode-decode

CFURLCreateStringByAddingPercentEscapesを使ったら
XCodeに (NSString*)CFBridgingReleaseに直された。

こんなかんじで実装した。

-(void) sendData:(float)MX MY:(float)MY{
    // POSTパラメーターを設定
    int MXi = (int)MX;
    int MYi = (int)MY;
    NSString *cuttingData = [NSString stringWithFormat:@"PA;PA;VS4;!VZ4;!PZ0,20;PU%d,%d;",MXi,MYi] ;
    NSString *escapedString = (NSString*)CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(                                                                                 kCFAllocatorDefault,(CFStringRef)cuttingData, NULL,(CFStringRef)@"!*'();:@&=+$,/?%#[]",kCFStringEncodingUTF8));
    NSString *baseparam = @"milData=";
    NSString *param = [baseparam stringByAppendingFormat:@"%@", escapedString];
    
    postString = [NSString stringWithFormat:@"%@", param];
    
    // リクエスト設定
    request = [[NSMutableURLRequest alloc] init];
    [request setHTTPMethod:@"POST"];
    [request setURL:[NSURL URLWithString:url]];
    [request setCachePolicy:NSURLRequestReloadIgnoringLocalAndRemoteCacheData];
    [request setTimeoutInterval:20];
    [request setHTTPShouldHandleCookies:FALSE];
    [request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
    
    // 送信
    NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (connection) {
        [NSMutableData data];
    }
}