1

您好我正在尝试连接到将使用用户名和密码作为凭据的某些服务器。以下是我正在使用的代码。NSString post =[[NSString alloc] initWithFormat:@"userName=*&password=* "]; NSURL url=[NSURL URLWithString:@"** * *** "];

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

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

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];
[request setURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:postData];
NSLog(@"request:%@",request);
     urlConnection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

这里的问题是服务器给用户无效的消息。但我给的凭据很好。这个用户名和密码没有进入请求对象..你们中的任何一个都可以帮助我..

4

2 回答 2

0

您需要以包含您的用户名和密码的字符串开头。这将形成 http POST 正文。您需要将 username_input_field 和 password_input_field 替换为网络服务器的正确输入字段名称。我的建议是使用 Firefox 和 httpFox 扩展来登录你的网络服务器。httpFox 将显示请求的所有输入字段名称。您可能还需要添加额外的隐藏字段。

NSString *post = [NSString stringWithFormat:
    @"username_input_field=%@&password_input_field=%@",username,password]; 
于 2012-05-24T14:47:10.430 回答
0

将用户名添加到请求标头对象中,如下所示:

[request addValue:@"<username>" forKey:@"<username parameter>"]
于 2012-05-28T09:56:46.280 回答