使用php从服务器获取数据

时间:2013-02-16 06:50:52

标签: cocoa-touch

NSURL *url = [[NSURL alloc] initWithString:@"http://nyxmyx.com/Kinkey/KinkeyPHP/lastidretrieve.php"];
    NSData *data = [url resourceDataUsingCache:YES];
    NSString *string = [[NSString alloc] initWithData:data encoding:NSMacOSRomanStringEncoding];
    NSLog(@"result FOR ID  %@",string);

我在didenterBackgroundMethod.In中使用此代码,我只想调用lastidretrieve.php,它返回一个字符串的响应。我收到错误,因为"接收器类型nsurl for instance message没有声明一个方法selector resourceDataUsingCache" .i对此错误没有任何想法。

2 个答案:

答案 0 :(得分:0)

阅读NSURL的文档就足够了。不推荐使用此方法。您应该使用[[NSData alloc] initWithContentsOfURL:url]代替。

答案 1 :(得分:0)

使用此代码代替您提供字符串输出的代码,然后您必须格式化该字符串以获得disired输出。

NSString *post =@"";

    NSURL *url=[NSURL URLWithString:@"http://nyxmyx.com/Kinkey/KinkeyPHP/lastidretrieve.php"];

    NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc] init];
    [request setURL:url];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
    [request setHTTPBody:postData];

    NSError *error = [[NSError alloc] init];
    NSHTTPURLResponse *response = nil;
    NSData *urlData=[NSURLConnection sendSynchronousRequest:request returningResponse:&response error:&error];

    if ([response statusCode] >=200 && [response statusCode] <300)
    {
        //NSData *data = [responseData resourceDataUsingCache:YES];
        NSString *string = [[NSString alloc] initWithData:urlData encoding:NSMacOSRomanStringEncoding];
        NSLog(@"responseData-%@",string);
    }

输出将是这样的。

responseData-1995<br />prabu<br />1231231233<br />antab<br />8080808080<br />1360738531881.jpg<br />No

<强>更新

如果您想在网址中添加参数,请将帖子字符串更改为此。

NSString *post =[[NSString alloc] initWithFormat:@"yourArg=%@",yourArg];