iPhone: How to send a HTTP request to a web servic

2019-03-10 06:02发布

How to send a HTTP request to a web service using Objective-C ? I need to fetch some data from my MySQL DB, so I need to send the request so I could fetch the data.

4条回答
男人必须洒脱
2楼-- · 2019-03-10 06:39

There are many ways, but perhaps the easiest is to use an existing framework, ASIHTTPRequest.

See: http://allseeing-i.com/ASIHTTPRequest/

查看更多
别忘想泡老子
3楼-- · 2019-03-10 06:39

ASIHTTPRequest is a great and simple framework, so I second the recommendations from other posts. To be complete though, you should also know that you can do this natively in Objective-C without another framework. Look at the Apple documentation for the NSURLConnection and NSURLConnectionRequest classes for background.

查看更多
霸刀☆藐视天下
4楼-- · 2019-03-10 06:43

Edit, because this is a popular question and time keeps going on. In the meantime Apple introduced NSJSONSerialization. Have a look a the docs: https://developer.apple.com/documentation/foundation/jsonserialization Only if you need to create code for iOS earlier than 5.0 you may want to use the json-framwork as mentioned below.

Besides that, the following original answer is still valid:

Assuming that you exchange your data in JSON, you may be interested in reading this. http://iosdevelopertips.com/cocoa/json-framework-for-iphone-part-2.html

However, the first part of that article answers your more general question on how to receive data from a web server/service:

- (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];
}

This is a simple example of a http request and surely good enough for your next steps. This method is given a URL and it returns the data sent by the server in an NSString.

Once that is working properly you will like to avoid that your app freezes while the request is "on the air". You can fix that by asynchronous requests. Google or the search on stackoverflow will provide you with links to examples and tutorials about that. But I suggest to go from here first, although this may not be the final solution.

查看更多
可以哭但决不认输i
5楼-- · 2019-03-10 06:43

Following is a lot of very famous library you can use for request

ASIHTTPRequest

AFNetwork

MFNetwork

You can search it in google, download in github or, yes, of course, why don't use Cocoapods. that's the best thing when i compare objective-c with other language.

Good luck

查看更多
登录 后发表回答