iPhone:如何使用Xcode向Web服务发送HTTP请求

Ill*_*lep 8 iphone http objective-c ios

如何使用Objective-C将HTTP请求发送到Web服务?我需要从我的MySQL数据库中获取一些数据,所以我需要发送请求以便我可以获取数据.

Her*_*ker 19

编辑,因为这是一个受欢迎的问题,时间一直在继续.与此同时,Apple推出了NSJSONSerialization.看看文档:https://developer.apple.com/documentation/foundation/jsonserialization 只有当您需要为早于5.0的iOS创建代码时,您可能需要使用如下所述的json-framwork.

除此之外,以下原始答案仍然有效:

假设您使用JSON交换数据,您可能有兴趣阅读此内容. http://iosdevelopertips.com/cocoa/json-framework-for-iphone-part-2.html

但是,该文章的第一部分回答了有关如何从Web服务器/服务接收数据的更一般性问题:

- (NSString *)stringWithUrl:(NSURL *)url
{
    NSURLRequest *urlRequest = [NSURLRequest requestWithURL:url
                                                    cachePolicy:NSURLRequestReturnCacheDataElseLoad
                                                    timeoutInterval:30];
        // Fetch the JSON response
    NSData *urlData;
    NSURLResponse *response;
    NSError *error;

    // Make synchronous request
    urlData = [NSURLConnection sendSynchronousRequest:urlRequest
                                        returningResponse:&response
                                                    error:&error];

    // Construct a String around the Data from the response
    return [[NSString alloc] initWithData:urlData encoding:NSUTF8StringEncoding];
}
Run Code Online (Sandbox Code Playgroud)

这是一个http请求的简单示例,对于您的后续步骤来说肯定足够好.此方法被赋予一个URL,它返回服务器在NSString中发送的数据.

一旦工作正常,您将希望避免在请求"播出"时您的应用程序冻结.您可以通过异步请求修复它.谷歌或stackoverflow搜索将为您提供有关该示例和教程的链接.但我建议先从这里开始,虽然这可能不是最终解决方案.


pic*_*ano 5

有很多方法,但也许最简单的方法是使用现有的框架ASIHTTPRequest.

请参阅:http://allseeing-i.com/ASIHTTPRequest/