这是我试图提交的文本区域的html code的一部分,这个论坛用来输入问题的大部分文本区域。它不工作,没有发送任何东西,我得到的响应类型是
NSHTTPURLResponse: 0x617bb20
虽然我设法让它在登录时工作,但我用user=%@&pass=%@替换了body=%@
NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://forums.whirlpool.net.au%@", replyLink]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setRequestMethod:@"POST"];
[request addRequestHeader:@"Content-Type" value:@"application/xml;charset=UTF-8;"];
[request setPostValue:@"test" forKey:@"body"];
[request setDelegate:self];
[request startAsynchronous];
- (void) requestFinished:(ASIHTTPRequest *)request {
//NSString *responseString = [request responseString];
NSLog(@"Response %d : %@", request.responseStatusCode, [request responseString]);
//NSData *responseData = [request responseData];
}
- (void) requestStarted:(ASIHTTPRequest *) request {
NSLog(@"request started...");
}
- (void) requestFailed:(ASIHTTPRequest *) request {
NSError *error = [request error];
NSLog(@"%@", error);
}使用ASIHTTPRequest更新了代码。
发布于 2011-06-05 02:29:23
ASIHTTPRequest就是这方面的发展方向。很难理解您所编写的代码到底出了什么问题(除了它看起来像一个同步请求,这是一个禁忌)。
在ASIHTTPRequest中,您可以执行以下操作:
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:someUrl];
[request setRequestMethod:@"POST"];
[request setPostValue:@"..." forKey:@"user"];
[request setPostValue:@"..." forKey:@"password"];
[request setDelegate:self];
[request startAsyncrhonous];然后,确保您的类符合ASIHTTPRequestDelegate协议,并至少实现此方法:
- (void)requestFinished:(ASIHTTPRequest *)request {
NSLog(@"Response %d ==> %@", request.responseStatusCode, [request responseString]);
}如果您愿意,还可以处理其他方法,例如:
- (void)requestStarted:(ASIHTTPRequest *)request;
- (void)requestFailed:(ASIHTTPRequest *)request;您可以随时从github下载ASIHTTPRequest项目,网址为http://github.com/pokeb/asi-http-request。
这些文档位于http://allseeing-i.com/ASIHTTPRequest/,并且是fantastic。
希望这能有所帮助!
发布于 2017-01-20 12:39:59
#import "ASIHTTPRequest.h"
#import "ASIFormDataRequest.h"
#import "JSON.h"
#import "JSONKit.h"
NSURL *url = [NSURL URLWithString:[[NSString stringWithFormat:@"YOUR URL"] stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];
ASIFormDataRequest *request = [ASIFormDataRequest requestWithURL:url];
[request setRequestMethod:@"POST"];
[request setPostValue:Email forKey:@"email"];
[request setPostValue:Password forKey:@"password"];
[request setDelegate:self];
[request setUsername:@"signin"];
[request startAsynchronous];
#pragma mark- Request Finish
- (void)requestFailed:(ASIHTTPRequest *)request;
{
NSLog(@"********** RequestFailed **************%@",request.responseString);
[SVProgressHUD dismiss];
}
-(void)requestFinished:(ASIHTTPRequest *)request
{
SBJSON *parser = [[SBJSON alloc] init];
NSDictionary *resDict = [parser objectWithString:[request responseString] error:nil];
if ([[request username] isEqualToString:@"signin"])
{
}
[SVProgressHUD dismiss];
}AFNetworking文件:https://drive.google.com/file/d/0B_RDiggCq5U3enh2WUdKaVlRcGM/view?usp=sharing
ASIHTTPREQUEST文件:https://drive.google.com/file/d/0B_RDiggCq5U3LUttRm9WSS1KN2s/view?usp=sharing
发布于 2011-06-06 02:12:47
我只是想说我让它工作了:)。
对于那些想要提示并处于我的位置的人,我们将在表单中查找隐藏字段或查看此站点的http://www.echoecho.com/htmlforms07.htm
和这篇文章来看看我的意思
http://www.iphonedevsdk.com/forum/148450-post14.html
对于那些只想要一个更直接的答案的人,请继续阅读,但请阅读iphonedevsdk链接,这是试图找到答案的基本步骤。
作为示例,html代码中的隐藏字段之一是:
<input type="hidden" name="version" id="version" value="3">这将转化为
[request setPostValue:@"3" forKey:@"version"];“forKey”是html中的"name“字段,"setPostValue”是"html“中的值。
您可以采用上面的想法,并将其应用于模拟按钮按下
<input type="submit" name="post" id="post" tabindex="56" style="width:150px;font:16px Arial;" value="Post Reply" onc...至
[request setPostValue:@"submit" forKey:@"post"];希望这对其他人有帮助:)。
https://stackoverflow.com/questions/6235815
复制相似问题