Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/106.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 将post变量发送到iOS表单_Iphone_Ios_Objective C - Fatal编程技术网

Iphone 将post变量发送到iOS表单

Iphone 将post变量发送到iOS表单,iphone,ios,objective-c,Iphone,Ios,Objective C,我试图发送一个用户名和密码到一个网站,这通常是通过一个表单完成。但是,服务器将我重定向到登录页面,这通常发生在用户名和密码错误时。用户名是电子邮件地址的形式,密码是字符串 我目前确实可以访问该网站,因为开发人员正在检查是否正确处理了这些值。有人能看到我在下面创建的代码中有任何明显的错误吗 请注意,出于隐私原因,我已从示例代码中删除了URL // Validate login -(bool)validateLogin{ // Initialize URL to be fetched

我试图发送一个用户名和密码到一个网站,这通常是通过一个表单完成。但是,服务器将我重定向到登录页面,这通常发生在用户名和密码错误时。用户名是电子邮件地址的形式,密码是字符串

我目前确实可以访问该网站,因为开发人员正在检查是否正确处理了这些值。有人能看到我在下面创建的代码中有任何明显的错误吗

请注意,出于隐私原因,我已从示例代码中删除了URL

// 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
对象。