自己总结的ASIHTTPRequestDelegate

#import "ASIHTTPRequest.h"
#import "ASINetworkQueue.h"

@interface DomainCheckViewController : UIViewController<UITextFieldDelegate,UITableViewDataSource,UITableViewDelegate,ASIHTTPRequestDelegate>
@property(retain,nonatomic)ASINetworkQueue*queCheck;


-(void)sendRequestByQueue
{
//built queue
if (!self.queCheck)
{
self.queCheck=[[ASINetworkQueue alloc]init];
}
self.queCheck.delegate=self;
[queCheck setShouldCancelAllRequestsOnFailure:NO];

//all request use params
NSDictionary *dicDomainName=[NSDictionary dictionaryWithObjectsAndKeys:self.doNameSearch.text,@"domainname", nil];

//get domain state ,domain visit state
NSString*ss1=[NSString stringWithFormat:@"%@_%@1",TOKEN,[self timestamp]];

NSDictionary *paramsState = [NSDictionary dictionaryWithObjectsAndKeys:
dicDomainName,@"data",
@"1.0",@"v",
ss1,@"trid",
@"wwwrecord",@"method",
@"ios",@"client",nil];

NSString*stringState=[NSString stringWithFormat:@"http://hiapp.hichina.com:8080/hiapp/json/wwwrecord/"];
NSURL *urlState = [NSURL URLWithString:stringState];
ASIFormDataRequest*requestState=[ASIFormDataRequest requestWithURL:urlState];
requestState.requestMethod=@"POST";
[requestState setPostValue:paramsState forKey:@"req"];
//get domainname's DNS check
NSString*ss2=[NSString stringWithFormat:@"%@_%@2",TOKEN,[self timestamp]];
NSDictionary *paramsDNS = [NSDictionary dictionaryWithObjectsAndKeys:
dicDomainName,@"data",
@"1.0",@"v",
@"whois",@"method",
ss2,@"trid",
@"ios",@"client",nil];


NSString*stringDNS=[NSString stringWithFormat:@"http://hiapp.hichina.com:8080/hiapp/json/whois/"];
NSURL *urlDNS = [NSURL URLWithString:stringDNS];
ASIFormDataRequest*requestDNS=[[ASIFormDataRequest alloc]initWithURL:urlDNS];
[requestDNS setRequestMethod:@"POST"];
[requestDNS setPostValue:paramsDNS forKey:@"req"];

//get unregistered domainname
NSString*ss3=[NSString stringWithFormat:@"%@_%@3",TOKEN,[self timestamp]];
NSDictionary *paramsUnregis = [NSDictionary dictionaryWithObjectsAndKeys:
dicDomainName,@"data",
@"1.0",@"v",
@"nodomainname",@"method",
ss3,@"trid",
@"ios",@"client",nil];


NSString*stringUnregis=[NSString stringWithFormat:@"http://hiapp.hichina.com:8080/hiapp/json/noDomainName/"];
NSURL *urlUnregis = [NSURL URLWithString:stringUnregis];
ASIFormDataRequest *requestUnregis=[[ASIFormDataRequest alloc]initWithURL:urlUnregis];
[requestUnregis setRequestMethod:@"POST"];
[requestUnregis setPostValue:paramsUnregis forKey:@"req"];//this way set value default POST

//get select domainname
NSDictionary*dic;
if ([self chineseOrEnglish:self.doNameSearch.text])//is english
{
dic=[NSDictionary dictionaryWithObjectsAndKeys:self.doNameSearch.text,@"domainnames", nil];
}
else
{
dic=[NSDictionary dictionaryWithObjectsAndKeys:[self.doNameSearch.text stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding],@"domainnames", nil];
}
NSString*ss4=[NSString stringWithFormat:@"%@_%@4",TOKEN,[self timestamp]];
NSDictionary *paramsSelect = [NSDictionary dictionaryWithObjectsAndKeys:
dic,@"data",
@"1.0",@"v",
@"checkdomain",@"method",
@"news",@"module",
ss4,@"trid",
@"ios",@"client",nil];

NSString*stringSelect=[NSString stringWithFormat:@"http://hiapp.hichina.com/hiapp/json/checkdomain/"];
NSURL *urlSelect = [NSURL URLWithString:stringSelect];
ASIFormDataRequest*requestSelect=[[ASIFormDataRequest alloc]initWithURL:urlSelect];
[requestSelect setPostValue:paramsSelect forKey:@"req"];



//put all request to my queue
[self.queCheck addOperation:requestState];
[self.queCheck addOperation:requestDNS];
[self.queCheck addOperation:requestUnregis];
[self.queCheck addOperation:requestSelect];
//assign all request uinque dictionary
requestState.userInfo=[NSDictionary dictionaryWithObject:@"state" forKey:@"name"];
requestDNS.userInfo=[NSDictionary dictionaryWithObject:@"dns" forKey:@"name"];
requestUnregis.userInfo=[NSDictionary dictionaryWithObject:@"unregis" forKey:@"name"];
requestSelect.userInfo=[NSDictionary dictionaryWithObject:@"select" forKey:@"name"];
//set delegate method finish or fail for queue
[queCheck setRequestDidFinishSelector:@selector(doFinish:)];
[queCheck setRequestDidFailSelector:@selector(doFail:)];
[queCheck setQueueDidFinishSelector:@selector(doAllQueue:)];
[queCheck go];
}


-(void)doFinish:(ASIFormDataRequest*)sender
{
// NSString*requestName=[[sender userInfo] objectForKey:@"name"];
if ([[[sender userInfo] objectForKey:@"name"] isEqualToString:@"state"])//state request data
{
NSMutableString *receiveStr = [[NSMutableString alloc]
initWithData:[sender responseData] encoding:NSUTF8StringEncoding];
NSLog(@"dicsta====%@",receiveStr);
NSDictionary*dicJson=[receiveStr JSONValue];
NSDictionary*dicResault=[dicJson objectForKey:@"results"];
//domain name state
if ([[dicResault objectForKey:@"wwwstatus"] intValue]==1)//normarl
{
[self.domainState setTitle:@"域名状态:正常" forState:UIControlStateNormal];
[self.domainState setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
else
{
[self.domainState setTitle:@"域名状态:异常" forState:UIControlStateNormal];
[self.domainState setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
}
//domain name visit state
NSArray*arrVisit=[dicResault objectForKey:@"infos"];
[self.visitDetail setTitle:[dicResault objectForKey:@"infos"] forState:UIControlStateSelected];
[self.domainVisit setTitle:@"域名访问状态:正常" forState:UIControlStateNormal];
[self.domainVisit setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
for (int i=0; i<[arrVisit count]; i++)
{
NSDictionary*dicvisit=[arrVisit objectAtIndex:i];
if ([[dicvisit objectForKey:@"status"] intValue]!=1)//all visit state must be 1
{
[self.domainVisit setTitle:@"域名访问状态:异常" forState:UIControlStateNormal];
[self.domainVisit setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
break;
}
}
}
if ([[[sender userInfo] objectForKey:@"name"] isEqualToString:@"dns"])//DNS request data
{
NSMutableString *receiveStr = [[NSMutableString alloc]
initWithData:[sender responseData] encoding:NSUTF8StringEncoding];
NSLog(@"dicdns====%@",receiveStr);
NSDictionary*dicJson=[receiveStr JSONValue];
NSDictionary*dicResault=[dicJson objectForKey:@"results"];
NSDictionary*dicWhois=[dicResault objectForKey:@"whois"];

[self.stateDetail setTitle:[dicWhois objectForKey:@"domainstatus"] forState:UIControlStateSelected];
[self.DNSDetail setTitle:[dicWhois objectForKey:@"dnsserver"] forState:UIControlStateSelected];
if ([[dicWhois objectForKey:@"dnsserver"] isKindOfClass:[NSString class]])//is nsstring normal
{
[self.domainDNS setTitle:@"域名DNS状态:正常" forState:UIControlStateNormal];
[self.domainDNS setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
}
else
{
[self.domainDNS setTitle:@"域名DNS状态:异常" forState:UIControlStateNormal];
[self.domainDNS setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
}
}
if ([[[sender userInfo] objectForKey:@"name"] isEqualToString:@"unregis"])//unregistered request data
{
NSMutableString *receiveStr = [[NSMutableString alloc]
initWithData:[sender responseData] encoding:NSUTF8StringEncoding];
NSLog(@"dicunresgit====%@",receiveStr);
NSDictionary*dicresault=[[receiveStr JSONValue] objectForKey:@"results"];
NSString*strUnregist=[dicresault objectForKey:@"notdomain"];
NSLog(@"uuuuuuuu======%@",strUnregist);
if ([strUnregist length])
{
[self.domainUnReg setTitle:[NSString stringWithFormat:@"有%d个未注册的域名",[[strUnregist componentsSeparatedByString:@","] count]] forState:UIControlStateNormal];
[self.domainUnReg setTitleColor:[UIColor greenColor] forState:UIControlStateNormal];
[self.regDetail setTitle:strUnregist forState:UIControlStateSelected];
}
else
{
[self.domainUnReg setTitle:@"无未注册域名" forState:UIControlStateNormal];
[self.domainUnReg setTitleColor:[UIColor redColor] forState:UIControlStateNormal];
}
}
if ([[[sender userInfo] objectForKey:@"name"] isEqualToString:@"select"])
{
NSMutableString *receiveStr = [NSMutableString alloc] initWithData:[sender responseData] encoding:NSUTF8StringEncoding];
NSLog(@"dicselect====%@",receiveStr);
//move down in the screen
[UIView animateWithDuration:0.5 animations:^{
self.domainResault.alpha=1;
self.btuBackImage.frame=CGRectMake(0, 200, 320, 300);
}];
NSDictionary*dicJson=[receiveStr JSONValue];
NSDictionary*dicresault=[dicJson objectForKey:@"results"];
NSArray*arrDomain=[dicresault objectForKey:@"domainnames"];
if ([[[arrDomain objectAtIndex:0] objectForKey:@"status"] intValue]==1)//the domain name have be registed
{
[self.resaultOn setTitle:@"此域名已被注册" forState:UIControlStateNormal];
self.face.image=[UIImage imageNamed:@"018@2x.png"];
[self.btu1 setImage:[UIImage imageNamed:@"detailbutton.png"] forState:UIControlStateNormal];
[self.btu1 setTitle:self.doNameSearch.text forState:UIControlStateSelected];
[self.btu2 setImage:[UIImage imageNamed:@"监控按钮.png"] forState:UIControlStateNormal];
}
else
{
[self.resaultOn setTitle:@"此域名未被注册" forState:UIControlStateNormal];
self.face.image=[UIImage imageNamed:@"smile.png"];
[self.btu1 setImage:[UIImage imageNamed:@"buycar.png"] forState:UIControlStateNormal];
[self.btu2 setImage:[UIImage imageNamed:@"收藏.png"] forState:UIControlStateNormal];
[self.btu2 setTitle:self.doNameSearch.text forState:UIControlStateSelected];
}
}
}


-(void)doFail:(ASIHTTPRequest*)sender
{
NSLog(@"%@",[sender error]);
}

-(void)doAllQueue:(ASINetworkQueue*)sender
{
NSLog(@"all queue finish");
}


- (BOOL)textFieldShouldEndEditing:(UITextField *)textField
{
if (self.englishButton.selected) {
NSString *match =@"^([a-z0-9]+\\.?(?:com|cn|mobi|co|net|so|org|gov|tel|tv|biz|cc|hk|name|info|asia|me)?(?:\\.?(?:cn))?)$";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",match];
if(![predicate evaluateWithObject:textField.text]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"对不起,您输入的域名格式有误\n请重新输入!\n\n例如:abc/abc.com" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}

} else {
//[\u4e00-\u9fa5]中文正则表达式
//@".com",@".net",@".tv",@".biz",@".cc",@".公司",@".网络",@".中国"
NSString *match =@"^([a-z0-9]*[\u4e00-\u9fa5]+[a-z0-9]*\\.?(?:com|net|tv|biz|cc|公司|网络|中国)?)$";
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF MATCHES %@",match];
if(![predicate evaluateWithObject:textField.text]){
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:nil message:@"对不起,您输入的域名格式有误\n请重新输入!\n\n例如:万网/万网.com" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
}
return YES;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值