0

私のウェブサイトを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. ログインアプリケーションを開発するにはどうすればよいですか?
  2. サーバーにリクエストを正常に送信していますが、サーバーからの応答を取得できません。どうすればこの問題を克服できますか?
4

1 に答える 1

1

Web 開発の経験がある場合は、NimbleKit for iPhone に興味があるかもしれません。これは、HTML と JavaScript を使用してネイティブ アプリケーション全体を開発できるシンプルな XCode プラグインです。

于 2009-07-06T12:19:55.630 に答える