Iphone 将post变量发送到iOS表单
我试图发送一个用户名和密码到一个网站,这通常是通过一个表单完成。但是,服务器将我重定向到登录页面,这通常发生在用户名和密码错误时。用户名是电子邮件地址的形式,密码是字符串 我目前确实可以访问该网站,因为开发人员正在检查是否正确处理了这些值。有人能看到我在下面创建的代码中有任何明显的错误吗 请注意,出于隐私原因,我已从示例代码中删除了URLIphone 将post变量发送到iOS表单,iphone,ios,objective-c,Iphone,Ios,Objective C,我试图发送一个用户名和密码到一个网站,这通常是通过一个表单完成。但是,服务器将我重定向到登录页面,这通常发生在用户名和密码错误时。用户名是电子邮件地址的形式,密码是字符串 我目前确实可以访问该网站,因为开发人员正在检查是否正确处理了这些值。有人能看到我在下面创建的代码中有任何明显的错误吗 请注意,出于隐私原因,我已从示例代码中删除了URL // Validate login -(bool)validateLogin{ // Initialize URL to be fetched
// Validate login
-(bool)validateLogin{
// Initialize URL to be fetched
NSURL *url = [NSURL URLWithString:@"removedurl"];
NSString *post = @"username=example1%40example.com&password=example2";
NSData *postData = [post dataUsingEncoding:NSASCIIStringEncoding allowLossyConversion:YES];
NSString *postLength = [NSString stringWithFormat:@"%d", [postData length]];
// Initalize a request from a URL
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[url standardizedURL]];
//set url
[request setURL:url];
//set http method
[request setHTTPMethod:@"POST"];
//set request length
[request setValue:postLength forHTTPHeaderField:@"Content-Length"];
//set request content type we MUST set this value.
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
//set post data of request
[request setHTTPBody:postData];
NSLog(@"%@", [request allHTTPHeaderFields]);
//initialize a connection from request
NSURLConnection *connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
_connection = connection;
//start the connection
[connection start];
return YES;
}
此字符串不正确
NSString*post=@“username=example1%40example.com&example2”代码>
在与符号之后,必须提供key=value。
@“key1=value1&key2=value2”代码>
工作代码示例:
在.h文件集委托中:
@interface Controller <NSURLConnectionDataDelegate>
此字符串不正确NSString*post=@“username=example1%40example.com&example2”代码>
在与符号之后,必须提供key=value。
@“key1=value1&key2=value2”代码>
工作代码示例:
在.h文件集委托中:
@interface Controller <NSURLConnectionDataDelegate>
我做这个nsurresponse*响应=[[nsurresponse alloc]init];NSData*data=[NSURLConnection sendSynchronousRequest:请求返回应答:&响应错误:&错误];NSHTTPURLResponse*httpResp=((NSHTTPURLResponse*)响应);这种连接模式不太正确:您没有将委托设置为NSURLConnection对象以捕获回调。而[connection start]
是不必要的。请参阅我的答案中的编辑。我执行此NSURResponse*响应=[[NSURResponse alloc]init];NSData*data=[NSURLConnection sendSynchronousRequest:请求返回应答:&响应错误:&错误];NSHTTPURLResponse*httpResp=((NSHTTPURLResponse*)响应);这种连接模式不太正确:您没有将委托设置为NSURLConnection对象以捕获回调。而[connection start]
是不必要的。请参阅我答案中的编辑。很抱歉,在我用此问题中使用的示例替换真实密码时出现了打字错误。这个问题仍然存在。这段代码运行得很好,我发现帖子不工作的原因是API要求启用cookie。您知道如何让应用程序使用cookie创建会话吗?您有NSHTTPCookieStorage
对象。很抱歉,当我用本问题中使用的示例替换真实密码时,出现了拼写错误。这个问题仍然存在。这段代码运行得很好,我发现帖子不工作的原因是API要求启用cookie。您知道如何让应用程序使用cookie创建会话吗?您有NSHTTPCookieStorage
对象。