如何将网站设为iPhone本机应用程序?

时间:2009-07-06 08:41:22

标签: iphone native

我打算将我的网站转换为iPhone原生应用程序。我陷入了如何实现这一目标的程度。

最初,我开发了第一个屏幕,即我的应用程序的LOGIN屏幕。我的服务器是用Java构建的。我能够将登录凭据发送到服务器并能够在服务器上查看请求。但我无法收到服务器对我发送的请求的回复。

我的部分代码是:

NSString *post = @"username=";

    post = [post stringByAppendingString:username];
    post = [post stringByAppendingString:@"&password="];
    post = [post stringByAppendingString:password];

    NSData *postData = [post dataUsingEncoding:NSUTF8StringEncoding allowLossyConversion:YES];

    NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];

    NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
    [request setURL:[NSURL URLWithString:@"http://mysite.com/login.action?"]];
    [request setHTTPMethod:@"POST"];
    [request setValue:postLength forHTTPHeaderField:@"Content-Length"];
  //  [request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
    [request setHTTPBody:postData];

    NSURLConnection *conn=[[NSURLConnection alloc] initWithRequest:request delegate:self];
    if (conn) 
    {
        receivedData = [[NSMutableData data] retain];
        NSLog(@"In \"LOGIN()\" :  receivedData = %@",receivedData);
    } 


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

    NSLog(@"In \"didReceiveResponse()\" :  receivedData = %@",receivedData);
}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
    [receivedData appendData:data];
    NSString *ReturnStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
    NSLog(@"In \"didReceiveData()\" :  receivedData = %@",receivedData);
    NSLog(@"Return String : %@", ReturnStr);

}

- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
    NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]);


    NSString *urlData;
    if (nil != receivedData) {
        urlData = [[[NSString alloc] initWithData:receivedData 
                                         encoding:NSUTF8StringEncoding] autorelease];
    }
    NSLog(@"In \"connectionDidFinishLoading()\" :  urlData = %@",urlData);

    [receivedData release];
}


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

    [connection release];

    [receivedData release];


    NSLog(@"Connection failed! Error - %@ %@",
          [error localizedDescription],
          [[error userInfo] objectForKey:NSErrorFailingURLStringKey]);
}
  1. 如何开发LOGIN应用程序?
  2. 我正在向服务器发送请求,但我无法从服务器获得响应。我怎样才能克服这个问题?

1 个答案:

答案 0 :(得分:1)

如果您有使用网络开发的经验,您可能会对使用NimbleKit for iPhone感兴趣。这是一个简单的XCode插件,允许您使用HTML和JavaScript开发整个本机应用程序。