Skip to content

tikeyc/TSoapRequest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TSoapRequest

///////////soapMessage 拼接
NSString *soapHtmlHead = [NSString stringWithFormat:
@"<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">"
"soapenv:Header/"
"soapenv:Body"
"<%@>",soapMethodName];
NSString *soapHtmlFoot = [NSString stringWithFormat:
@"</%@>"
"</soapenv:Body>"
"</soapenv:Envelope>",soapMethodName];

NSMutableString *soapHtmlMiddle = [NSMutableString string];    

// for (NSString *key in params.allKeys) {
// NSString *value = params[key];
// NSString *bodyString = [NSString stringWithFormat:@"<%@>%@</%@>",key,value,key];
// [soapHtmlMiddle appendString:bodyString];
// } 当包含多层key-value时,此法存在问题,所以运用下面的递归调用

[self appendSoapHtmlMiddle:&soapHtmlMiddle WithParams:params];          


-(void)appendSoapHtmlMiddle:(NSMutableString **)soapHtmlMiddle WithParams:(NSMutableDictionary *)params              

{

for (NSString *key in params.allKeys) {    

    [*soapHtmlMiddle appendString:[NSString stringWithFormat:@"<%@>",key]];        
    
    id value = params[key];        
    
    if ([value isKindOfClass:[NSDictionary class]]) {
    
        [self appendSoapHtmlMiddle:&*soapHtmlMiddle WithParams:value];
        
    }else if ([value isKindOfClass:[NSArray class]]){
    
        for (id oneValue in value) {
            if ([oneValue isKindOfClass:[NSDictionary class]]) {
                [self appendSoapHtmlMiddle:&*soapHtmlMiddle WithParams:oneValue];
            }
        }
    }else{
        [*soapHtmlMiddle appendString:[NSString stringWithFormat:@"%@",value]];
    }
    
    [*soapHtmlMiddle appendString:[NSString stringWithFormat:@"</%@>",key]];
}

}

About

iOS基于HTML的Soap请求的封装

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages