Есть ли способ использовать iPhone SDK для получения тех же результатов, что и методы HTTP POST или GET?
Могу ли я делать запросы POST или GET из приложения iphone?
Ответ 1
Предположим, что ваш класс имеет переменную экземпляра 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]];
Ответ 2
Если вы используете Objective C, вам нужно будет использовать классы NSURL, NSURLRequest и NURLConnection. Apple NSURLRequest doc. HttpRequest предназначен для JavaScript.