易宝给的代码事例:http://220.181.25.233:8081/confluence/pages/viewpage.action?pageId=1671174
根据他给的事例可以在网页上模拟一次请求。
<
html
>
<
head
>
<
meta
http-equiv
=
"content-type"
content
=
"text/html; charset=UTF-8"
/>
</
head
>
<
body
>
<
form
action
=
"<a href="http://220.181.25.233:8081/member/bha/toRegister" "="" style="color: rgb(59, 115, 175); text-decoration: none; border-radius: 0px !important; border: 0px !important; bottom: auto !important; float: none !important; height: auto !important; left: auto !important; margin: 0px !important; outline: 0px !important; overflow: visible !important; padding: 0px !important; position: static !important; right: auto !important; top: auto !important; vertical-align: baseline !important; width: auto !important; box-sizing: content-box !important; min-height: auto !important; background: none !important;">http://220.181.25.233:8081/member/bha/toRegister"
method
=
"post"
>
<
input
name
=
"sign"
type
=
"hidden"
value
=
"signdata"
></
input
>
<
textarea
name
=
"req"
cols
=
"100"
rows
=
"5"
></
textarea
>
<
input
type
=
"submit"
value
=
"提交"
></
input
>
</
form
>
</
body
>
</
html
>
|
<?
xml
version
=
"1.0"
encoding
=
"UTF-8"
standalone
=
"yes"
?>
<
request
platformNo
=
"10040011137"
>
<
platformUserNo
>用户编号</
platformUserNo
>
<
nickName
>土豪</
nickName
>
<
realName
>高富帅</
realName
>
<
idCardType
>G2_IDCARD</
idCardType
>
<
idCardNo
>430503198010100432</
idCardNo
>
<
mobile
>18688888888</
mobile
>
<
email
>test@hotmail.com</
email
>
</
request
>
NSMutableURLRequest *request = [[NSMutableURLRequestalloc]initWithURL:[NSURLURLWithString:[NSStringstringWithFormat:@"%@%@",PAYBASEURL,_contextUrl]]];
[request setHTTPMethod:@"POST"];
NSString *sss = [NSStringstringWithFormat:@"req=%@&sign=%@",_reqStr,@"222"];
NSData *data = [sssdataUsingEncoding:NSUTF8StringEncodingallowLossyConversion:YES];
[request setHTTPBody: data];
[_mainWebViewloadRequest:request];
测试环境sign随便写,后台不解析。如果接入生产环节,sign签名要填真实的,后台会解析。签名需要经过出来urlencode一下。
CFBridgingRelease(CFURLCreateStringByAddingPercentEscapes(kCFAllocatorDefault,
(CFStringRef)_sign,
NULL,
(CFStringRef)@"!*'();:@&=+$,/?%#[]",
kCFStringEncodingUTF8));
然后上面那req的值怎么办,拼凑即可:之前需要传的值形成一个字典,然后转变成需要格式的xml。
- (void)setParameters:(NSDictionary *)patameters ContextUrl:(NSString *)contextUrl
{
NSMutableString *mutableStr= [[NSMutableStringalloc]initWithString:[NSStringstringWithFormat:@"<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><request platformNo=\"%@\">",patameters[@"platformNo"]]];
NSArray *array = [patametersallKeys];
for (NSString *din array) {
if (![disEqualToString:@"platformNo"]) {
[mutableStr appendString:[NSStringstringWithFormat:@"<%@>",d]];
[mutableStr appendString:[patametersobjectForKey:d]];
[mutableStr appendString:[NSStringstringWithFormat:@"</%@>",d]];
}
}
[mutableStr appendString:[NSStringstringWithFormat:@"</request>"]];
_reqStr = mutableStr;
_contextUrl = contextUrl;
}