从iPhone将长文本保存到PHP web服务


Saving long text to PHP web service from iPhone

我正在开发一个应用程序,需要使用PHP web服务将一些长文本保存到MySQL数据库中。我已经创建了web服务,但我无法将参数从iPhone发送到PHP web服务。以下是我的web服务代码:

<?php
require_once('config.php');
$username = $_POST["username"];
$aboutme = $_POST["aboutme"];
$conn = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD) or die('Connection to database failed: ' . mysql_error());
mysql_select_db(DB_DATABASE) or die ('select_db failed!');
$query = "insert into Member(username, aboutMe) values(.'".$username."', '".$aboutme."')";
echo $query;
$result = mysql_query($query) or die(mysql_error());
echo $result;
mysql_close($con);
?>  
 

我已经找到了将数据发布到web服务的代码,但我无法将数据添加到发布请求中。

status=[NSString stringWithFormat:@"username=%@&password=%@&interestedIn=%@&aboutme=%@&profilePic=%@&isFBLogin=%@&useFacebookPic=%@",[@"aaaaaaaaaa" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"bbbbbb" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"female" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"about meeeeeeeee" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"profile.png" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"0" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[@"0" stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];
    //status = @"username=pankaj1234&aboutme=Hello Baby 1234567890 0987654321";
    NSData *postData = [status dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
NSData *postData = [status dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];
    
    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
    
    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://www.example.com/registerUser.php"]];
    [request setURL:url];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];
    
    NSURLResponse *response;
    NSError *error;
    [NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];
    NSLog(@"success!");

我将如何将这些值添加到请求中?

您发布了一个www表单,但您没有正确编码数据。

表单具有以下语法:key=value&key=value,其中键/值都是url编码的。

您的编码字符串("状态")应编码如下:

status=[NSString stringWithFormat:@"username=%@&aboutme=%@",[username stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding],[about stringByAddingPercentEscapesUsingEncoding:NSASCIIStringEncoding]];

然后,您可以使用其余的代码将其转换为NSData并发布到您的Web服务中。