我正在使用 NSMutableURLRequest 向 Web 服务发送(同步)POST 请求。请求正文包含 XML 和 JSON 的组合。就像是 :
<element>
<element 2>
<![CDATA[
{"jsondata1":{"datafield1":"data1"},
"jsondata2":"some data"
}
]]>
</element 2>
</element>
JSON 字符串已被转义(escape()
在 Javascript 中使用)
当我在另一端收到请求时,我注意到所有转义字符都未转义!
谁能告诉我为什么会这样?我怎样才能防止这种情况发生?
这是我用来发送请求的代码:
NSURL *url = [NSURL URLWithString:@"https://my-webservice.com/something.do"];
NSData *xmlResponseDataSave;
NSMutableURLRequest *req = [[NSMutableURLRequest alloc] initWithURL:url];
NSString *msgLength = [NSString stringWithFormat:@"%d",[xmlRequestString length]];
[req addValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"Content-Type"];
[req addValue:msgLength forHTTPHeaderField:@"Content-Length"];
[req setHTTPMethod:@"POST"];
NSData *saveData=[xmlRequestString dataUsingEncoding:NSUTF8StringEncoding];
[req setHTTPBody:saveData];
NSError *error=nil;
NSURLResponse *resp=[[NSURLResponse alloc] init];
xmlResponseData=[NSURLConnection sendSynchronousRequest:req returningResponse:&resp error:&error];
NSString *xmlResponseString=[[NSString alloc] initWithData:xmlResponseData encoding:NSUTF8StringEncoding];
请注意:我无法对 xml 或 Web 服务进行任何更改。我只能更改目标 c 代码。