2010-12-21 88 views
0

蔭嘗試使用HTTP請求值提交到外部數據庫問題與Objective C的HTTP請求

我的代碼如下

NSString *post =[NSString stringWithFormat:@"user=%@&child=%@&content=%@",userId,childId, crackContent.text]; 

    responseData = [[NSMutableData data] retain]; 
    NSString *hostStr = @"http://myhost.com/addItem.php?"; 
    post = [utilityObj getEncodedUrl:post]; 
    hostStr = [hostStr stringByAppendingString:post]; 
    NSLog(hostStr); 

    NSLog(hostStr); 
    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:hostStr]]; 

    [[NSURLConnection alloc] initWithRequest:request delegate:self]; 

我的問題是,如果任何空間包含任何參數,它將不會提交,否則會成功提交。

幫助受到高度讚賞。

回答

1

您可能在發送之前獲取參數編碼。

NSString* escapedUrlString = 
    [unescapedString stringByAddingPercentEscapesUsingEncoding: 
         NSASCIIStringEncoding]; 

替代

NSString * escapedUrlString = (NSString *)CFURLCreateStringByAddingPercentEscapes(
    NULL, 
    (CFStringRef)unescapedString, 
    NULL, 
    (CFStringRef)@"!*'\"();:@&=+$,/?%#[]% ", 
    kCFStringEncodingUTF8); 
+0

Thaks您的回覆,我現在可以解決空間的問題,但是當我加入單引號有一個運行時發生異常時,你知道whts問題。 – user232751 2010-12-21 09:12:01

+0

在答案中添加另一種方法。你可以試試。 – WaiLam 2010-12-22 04:19:35

+0

嗨WaiLam感謝您的回覆,我申請了第二個代碼,並且我添加了一個單引號,現在沒有運行時異常,但數據無法發佈。 – user232751 2010-12-23 05:12:11