Могу ли я сделать POST или GET запросы из приложения для iPhone? - PullRequest
26 голосов
/ 26 ноября 2008

Есть ли способ с помощью iPhone SDK получить те же результаты, что и методы HTTP POST или GET?

Ответы [ 2 ]

45 голосов
/ 27 ноября 2008

Предположим, у вашего класса responseData переменная экземпляра, тогда:

responseData = [[NSMutableData data] retain];

NSURLRequest *request =
    [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.domain.com/path"]];
[[NSURLConnection alloc] initWithRequest:request delegate:self];

А затем добавьте следующие методы в ваш класс:

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
    [responseData setLength:0];
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [responseData appendData:data];
}

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
{
    // Show error
}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    // Once this method is invoked, "responseData" contains the complete result
}

Это отправит GET. К тому времени, когда последний метод вызывается, responseData будет содержать весь HTTP-ответ (преобразовать в строку с помощью [[NSString alloc] initWithData: encoding:].

В качестве альтернативы для POST замените первый блок кода на:

NSMutableURLRequest *request =
        [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.domain.com/path"]];
[request setHTTPMethod:@"POST"];

NSString *postString = @"Some post string";
[request setHTTPBody:[postString dataUsingEncoding:NSUTF8StringEncoding]];
8 голосов
/ 26 ноября 2008

Если вы используете Objective C, вам нужно использовать классы NSURL, NSURLRequest и NURLConnection. Apple NSURLRequest doc . HttpRequest для JavaScript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...