-2

question_id = 28, value = 'yes', null现在
函数会得到

{
 question_id = 22, 
 value = 'yes', 
 array = (9=>1, 28 => 0)
}

9 是 id 1 表示是,0 表示否。该数组存储所有以前的问题和答案,如果没有问题,则显示结果。我如何使用两个操作按钮是和否来实现/发布/这个?

4

1 回答 1

2

您可以使用以下代码片段,如本文所述

在这里,我简单描述一下如何使用 POST 方法。

1.使用实际用户名和密码设置帖子字符串。

NSString *post = [NSString stringWithFormat:@"&Username=%@&Password=%@",@"username",@"password"];

2.NSASCIIStringEncoding使用以及您需要以 NSData 格式发送的帖子字符串对帖子字符串进行编码。

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

您需要发送数据的实际长度。计算帖子字符串的长度。

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

3.创建一个包含所有属性的 Urlrequest,如HTTP方法、http 标头字段以及 post 字符串的长度。创建URLRequest 对象并初始化它。

NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] init] autorelease];

设置要向该请求发送数据的 URL。

[request setURL:[NSURL URLWithString:[NSString stringWithFormat:@"http://www.abcde.com/xyz/login.aspx"]]];

现在,设置HTTP方法(POST 或 GET)。像在您的代码中一样编写此行。

[request setHTTPMethod:@"POST"];

HTTP使用发布数据的长度设置标题字段。

[request setValue:postLength forHTTPHeaderField:@"Content-Length"];

还要设置 HTTP 标头字段的编码值。

[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Current-Type"];

使用 postData设置HTTPBodyurlrequest 的。

[request setHTTPBody:postData];

4.现在,创建 URLConnection 对象。使用 URLRequest 对其进行初始化。

NSURLConnection *conn = [[NSURLConnection alloc]initWithRequest:request delegate:self];

它返回初始化的 url 连接并开始为 url 请求加载数据。您可以使用下面的if/else语句检查您URL的连接是否正确完成。

if(conn)
{
NSLog(@”Connection Successful”)
}
else
{
NSLog(@”Connection could not be made”);
}

5.要接收来自 HTTP 请求的数据,您可以使用 URLConnection 类参考提供的委托方法。委托方法如下。

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data

上述方法用于接收我们使用 post 方法获取的数据。

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

此方法,您可以在未与服务器建立连接的情况下接收错误报告。

- (void)connectionDidFinishLoading:(NSURLConnection *)connection

上述方法用于连接成功后的数据处理。

另请参阅 文档以了解POST方法。

这是HTTPPost 方法源代码的最佳示例。

编辑:

-(void) buttonPressed:(id) sender
{
    NSURL *url = [NSURL URLWithString:@"URL"];
    ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
    [request setShouldStreamPostDataFromDisk:YES];
    [request setDidFinishSelector:@selector(uploadFinished:)];
    [request setDidFailSelector:@selector(uploadFail:)];
    [request setTimeOutSeconds:300];
    [request setPostValue:@"Login" forKey:@"action"];
    [request setPostValue:Yourvalue1 forKey:@"key1"];
    [request setPostValue:Yourvalue2 forKey:@"key2"];
    .
    .
    .

    request.delegate = self;
    [self.sendLoader startAnimating];
    [request startAsynchronous];
}

#pragma Mark -
#pragma Mark - ASIHTTPRequest Methods

- (void) uploadFinished:(ASIHTTPRequest *)request
{
    NSString *str = [request responseString];// convert it as JSON also.

}
- (void) uploadFail:(ASIHTTPRequest *)request
{
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",@"") message:NSLocalizedString(@"Connection failed !!",@"") delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",@"") otherButtonTitles:nil];
    [alert show];

}
于 2013-03-14T11:14:07.640 回答