0

正在NSURLRequest添加%0。_ request我创建了字符串并将其转换为 base 64,然后发送到 url,但NSURLRequest会自动添加%0。下面是我正在使用的代码。

这是如何转换为base 64.

 NSData *plainTextData = [totalStr dataUsingEncoding:NSUTF8StringEncoding];
 NSString *base64String = [plainTextData base64EncodedString];
 NSLog(@"encoded url:%@",base64String);

当 Api 调用时。

NSString *urlStr = [NSString stringWithFormat:@"http://mabct.co/api/checkin/%@", [code valueForKey:@"code"]];

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:
                                [NSURL URLWithString:urlStr]];
                                // [urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];

NSString *responseString = [MyEventApi sendRequest:request];

NSError *error;
NSData *jsonData = [responseString dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *results = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];
NSLog(@"dict in API-------------%@",results);
return results;

这是转换为 base 64 的字符串

eyJldmVudElkIjoiNDAiLCJzZWF0IjoiMTBfS2FyYW4gU3VraGlqYV8yNC0wNC0yMDEzIDE3OjE3IiwidXNlcklkIjoiMTAifQ==

这就是NSURLRequest发送的内容。

eyJldmVudElkIjoiNDAiLCJzZWF0IjoiMTBfS2FyYW4gU3VraGlqYV8yNC0wNC0y%0D%0AMDEzIDE3OjE3IiwidXNlcklkIjoiMTAifQ==

这就是我发送的编码

"{"eventId":"47","seat":"10_Karan Makhija_24-04-2013 10:06","userId":"10"}"

我没有得到什么是错的,请指导上述内容。提前致谢。

4

1 回答 1

0

我看到它%0D%0A被添加到您的原始字符串中。我google了一下,发现:

%0D%0A 是 的编码 ASCII 不可打印字符,在 Microsoft 平台上是 NewLine 所以:

  1. 考虑一下您是否在编辑文件时不小心按回车键替换了某些 HTML。

2a. 请注意您的编辑器使用什么编码来保存文件(通常是 ASCII、ANSI 或 Unicode)

2b。您的网络服务器(一个 IIS6,可能在 Windows 2003 服务器上运行)以 UTF-8 编码提供文件,这很好 - 但您可能需要验证它是否使用与保存文件相同的编码实际读取文件文件。

如果您想检查,这里是SOURCE 。

编辑

确保您的网络服务器和客户端使用相同的编码(即NSUTF8StringEncoding或任何其他,但相同)

此外,Web 服务器上还有 IF base 64 编码。按照链接,用于实现此类编码/解码的类别。我希望这能帮到您。

于 2013-04-24T12:35:51.377 回答