有没有办法使用iPhone SDK获得与HTTP POST或GET方法相同的结果?
答案 0 :(得分:45)
假设您的班级有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。调用final方法时,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]];
答案 1 :(得分:8)
如果您使用的是Objective C,则需要使用NSURL,NSURLRequest和NURLConnection类。 Apple's NSURLRequest doc。 HttpRequest适用于JavaScript。