0

此代码示例来自APE官网: http: //www.ape-project.org/

var client = new APE.Client();

client.load();

client.core.join('testChannel');

client.request.send('foo', {ping: 'ho hey', fieldWidthBinaryDataOrSpecialCharacters: '+/'});

client.onRaw('bar', function(raw, pipe) {
    console.log('echo : ' + raw.data.echo);
    console.log('Receiving : ' + raw.data.hello);
});

当我在服务器端接收到数据时,发现特殊字符+/已经被 URL 编码(%2B%2F)。

APE 总是使用 GET 吗?如果我们使用 POST,我认为我们可以发布任何数据,包括二进制数据,对吧?但是如何在 JSON 中使用 POST 呢?

我的情况是,即使我不使用二进制格式,我也必须使用 Base64。但是标准 Base64 使用+/的不是 URL 安全的。您可能会建议使用 Base64 的 URL 安全版本,但 URLSafeBase64 不是标准的,它还可能会产生其他问题。

我是不是误会了什么?

谢谢。

彼得

4

1 回答 1

0

我终于做了两步编码:

客户端:

  1. Base64 编码;

服务器端:

  1. 网址解码;(似乎 URL 编码是在 APE 的某处自动完成的)
  2. Base64 解码。

PS:如果有人知道如何以更有效的方式传输二进制数据,请告诉我,我会将您的答案重新标记为正确的。

于 2012-01-25T01:19:50.273 回答