简体   繁体   English

iOS使用Objective-C使用GET请求保存JSON

[英]ios save json with GET request using objective-c

I've tried most of advises from stackoverflow but none of them was good for me. 我已经尝试了大多数stackoverflow的建议,但是没有一个对我有好处。

My client wants to save user data in json with GET request in format: 我的客户想要使用GET请求将用户数据保存在json中,格式为:

http://website.com/users/save.php?save={"email":"user@domen.com","name":"Will Smith"}

I'm using objective-c Please advise Thanks 我正在使用Objective-C,请告知谢谢

Edit 编辑

my php file looks like this: 我的php文件看起来像这样:

<?php
$save = $_GET['save'];
$fp = fopen("save_users_ww.txt", "a+");
fputs($fp,$save."\r\n");
fclose($fp);
?>

so post don't work for me. 所以发布对我不起作用。 Thank you for help again 再次感谢您的帮助

In case someone else will need a solution, this is my code: 万一其他人需要解决方案,这是我的代码:

.h file: .h文件:

@interface WelcomeViewController : UIViewController <NSURLConnectionDelegate>
{
NSMutableData *_responseData;
}

.m file: .m文件:

-(void)postToDataBaseWithName:(NSString*)nameToPost andEmail:(NSString*)emailToPost  {
    NSString *str = [NSString stringWithFormat:@"http://website.com/users/save.php?save={\"email\":\"%@\",\"name\":\"%@\"}", emailToPost, nameToPost];
    str = [str stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSURL *url = [NSURL URLWithString:str];
    NSURLRequest *request = [NSURLRequest requestWithURL:url];

    // Create url connection and fire request
    NSURLConnection *conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];

    if(conn) {

    }
}

also add delegate methods to see how it works: 还添加委托方法以查看其工作方式:

#pragma mark NSURLConnection Delegate Methods

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response {
    // A response has been received, this is where we initialize the instance var you created
    // so that we can append data to it in the didReceiveData method
    // Furthermore, this method is called each time there is a redirect so reinitializing it
    // also serves to clear it

    NSLog(@"didReceiveResponse");
    _responseData = [[NSMutableData alloc] init];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data {
    // Append the new data to the instance variable you declared
    NSLog(@"didReceiveData");
    [_responseData appendData:data];
}

- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
              willCacheResponse:(NSCachedURLResponse*)cachedResponse {
    // Return nil to indicate not necessary to store a cached response for this connection
    return nil;
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
    // The request is complete and data has been received
    // You can parse the stuff in your instance variable now
    NSLog(@"connectionDidFinishLoading");

}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
    // The request has failed for some reason!
    // Check the error var
    NSLog(@"didFailWithError = %@", error);
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM