前端之家收集整理的这篇文章主要介绍了
NSXMLParser XML 解析 解压,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
- #import "Http.h"
-
-
-
- @interface Http ()
- @end
-
- @implementation Http
- @synthesize requestAddr;
- @synthesize loginJudge;
- -(id)initWithRequestStyle:(HTTPREQUESTTYPE)type paramArray:(NSDictionary*)params
- {
- paramDict = params;
- finished = NO;
- //[self switchHttpUrlRequest:type];
- self.requestAddr = [self switchHttpUrlRequest:type];
- return self;
- }
- //url拼接与判断
- -(NSString *)switchHttpUrlRequest:(HTTPREQUESTTYPE)type
- {
- NSMutableString *addr = [[[NSMutableString alloc]initWithString:@"http:XXXXXXXXXXXX"]autorelease];
- ViewController *viewcontroller = [[ViewController alloc]init];
- [viewcontroller autorelease];
- switch (type)
- {
- case EPAYLOGIN:
- [addr appendFormat:@"getlogin?Account=%@&Password=%@%",[paramDict objectForKey:@"useName"],[paramDict objectForKey:@"usePwd"]];
- break;
-
- default:
- break;
- }
- NSLog(@"addrHpptRequest:%@",addr);
- return addr;
- }
- -(void)requestAndconnect
- {
- NSMutableURLRequest *request = [[[NSMutableURLRequest alloc]init] autorelease];
- requestAddr = [requestAddr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
- NSLog(@"requestAddr%@",requestAddr);
-
- [request setURL:[NSURL URLWithString:requestAddr]];
- [request setHTTPMethod:@"GET"];
- [request setTimeoutInterval:10];
- NSURLConnection *conn = [[[NSURLConnection alloc]initWithRequest:request delegate:self] autorelease];
-
- if(conn)
- {
- receivedData = [[NSMutableData data] retain];
- while(!finished)
- {
- timeout ++;
- NSLog(@"outtime:%d",timeout);
- if(timeout>5)
- {
- finished = YES;
- }
- [[NSRunLoop currentRunLoop] runMode:NSDefaultRunLoopMode beforeDate:[NSDate dateWithTimeIntervalSinceNow:1]];
- }
- }
- else
- {
- NSLog(@"失败");
- }
-
- }
- /*
- - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error
- {
- finished = YES;
- //etrafficAppDelegate *app =[[UIApplication sharedApplication] delegate];
- //app.moudle.netWorkComplite = NO;
- NSLog(@"connection error");
- }
- */
-
- - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
- {
- [receivedData appendData:data];
- NSLog(@"receivedDate:%@",receivedData);
- }
- - (void)connectionDidFinishLoading:(NSURLConnection *)connection
- {
-
-
- EpayLogin *epayloginxml;
- switch (curType)
- {
- case EPAYLOGIN:
- NSLog(@"sssssss");
-
- epayloginxml = [[EpayLogin alloc]initWithData:receivedData];
-
- NSMutableArray *aa = [[NSMutableArray alloc]init];
- aa = [epayloginxml beginParser];
-
-
- NSDictionary *a = [[NSDictionary alloc]init];
- a = [aa objectAtIndex:0];
- NSLog(@"aaaaaaaaaa:%@",[aa objectAtIndex:0]);
- NSLog(@"aa%@",[a objectForKey:@"Transreturn"]);
-
-
- LoginJudge *test = [[LoginJudge alloc]init];
- test.loginarray = aa;
- self.loginJudge =[test autorelease];
- NSLog(@"retainCount:%d",[self.loginJudge retainCount]);
- NSLog(@"loginarray:%@",[self.loginJudge.loginarray objectAtIndex:0]);
-
- break;
-
- default:
- break;
- }
- }
- @end
- @class LoginJudge;
- #import <UIKit/UIKit.h>
- #import <zlib.h>
- #import "ParserForMainReturn.h"
- #import "ViewController.h"
- #import "EpayLogin.h"
- #import "LoginJudge.h"
-
- enum _HttpRequestType
- {
- EPAYLOGIN,};
- typedef NSUInteger HTTPREQUESTTYPE;
- @interface Http : NSObject
- {
- NSMutableData *receivedData;
- NSDictionary *paramDict;
- BOOL finished;
- HTTPREQUESTTYPE curType;
- int timeout;
- }
- @property(nonatomic,retain)NSString *requestAddr;
- @property(nonatomic,retain)LoginJudge *loginJudge;
- -(id)initWithRequestStyle:(HTTPREQUESTTYPE)type paramArray:(NSDictionary*)params;
- -(NSString *)switchHttpUrlRequest:(HTTPREQUESTTYPE)type;
- -(void)requestAndconnect;
- @end
- #import <Foundation/Foundation.h>
-
- enum __mainElement {
- MRETURN
- };
- typedef NSUInteger _mainElement;
- @interface ParserForMainReturn : NSObject <NSXMLParserDelegate>{
- NSData *data;
- NSXMLParser *parser;
- _mainElement mainElement;
- NSData *mData;
- NSMutableString *mStr;
- // NSMutableArray *mainList;
- // NSMutableDictionary *mainInfo;
- }
- @property(nonatomic,retain)NSData *data;
- -(id)initWithData:(NSData*)pdata ;
- -(NSData*)beginParser;
- -(NSData *)uncompressZippedData:(NSData *)compressedData ;
- @end