我正在使用外部网址加载webView并发布数据。
一切正常,除非数据包含'+'字符,否则失败。 我试图以不同的方式对数据进行编码,但我无法使其工作。 如何正确编码加号?
-(void) cargarWebViewTPVRedys:(TPVRedsys*) redsys{
NSURL *url = [NSURL URLWithString: @"https://sis-t.redsys.es:25443/sis/realizarPago"]; // PRUEBAS
// NSURL *url = [NSURL URLWithString: @"https://sis.redsys.es/sis/realizarPago"]; // REAL
NSString *body = [NSString stringWithFormat: @"DS_SIGNATURE=%@&DS_MERCHANTPARAMETERS=%@&DS_SIGNATUREVERSION=%@",redsys.Ds_Signature,redsys.Ds_MerchantParameters,redsys.Ds_SignatureVersion];
NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
[request setHTTPMethod: @"POST"];
//[request setHTTPBody: [body dataUsingEncoding: NSUnicodeStringEncoding]];
//[request setHTTPBody: [body dataUsingEncoding: NSASCIIStringEncoding]];
[request setHTTPBody: [body dataUsingEncoding: NSUTF8StringEncoding allowLossyConversion:false]];
NSLog(redsys.Ds_Signature);
NSLog(redsys.Ds_MerchantParameters);
NSLog(redsys.Ds_SignatureVersion);
[self.webView loadRequest:request];
}
答案 0 :(得分:0)
似乎取代了' +'其十六进制值的字符
NSString *body = [body2 stringByReplacingOccurrencesOfString:@"+" withString:@"%2B"];