【问题标题】:Sending binary data over http in the url在 url 中通过 http 发送二进制数据
【发布时间】:2016-08-20 03:53:34
【问题描述】:

我正在尝试通过浏览器中的 URL 字段通过 http 将二进制数据传递到服务器。有没有办法绕过浏览器自动进行的http编码,所以我可以自己编码数据。

例如:代替值为 48 的字节,填写 URL %30,这样浏览器就不会重新编码 url,我最终得到 %2530

已解决:以后可能会遇到类似问题的人。您可以通过使用 wget 参数来做到这一点

--restrict-file-name=ascii

这基本上确保 '%' 不会被转义

【问题讨论】:

  • 为什么要自己编码?
  • 因为在服务器端有一个需要这种数据的二进制文件,我想知道是否有办法做到这一点,而无需从头开始编写 http 客户端。
  • 如果你只是放一个0,那相当于放%30。这样做应该没有任何问题。
  • 例如建议,这只是一个例子。对于前 127 个 ASCII 字符(可读字符)有一些方法可以这样做,但问题在于范围内的字符(127-255]

标签: http binary-data


【解决方案1】:

使用base64 编码,这就是它的设计目的。

【讨论】:

  • 他不能修改服务器端,所以没办法。 Skyel,你应该把它放在问题中。
  • 这可能会导致问题,因为 base64 编码的字符串可能包含“/”。我觉得base32编码比较合适。
【解决方案2】:

我设法做到了,通过编写自己的 tcp 客户端来连接到 http 服务器并通过手动输入来传输请求。

【讨论】:

    【解决方案3】:

    使用base62 编码。

    编码的字符串不包含任何将被 URL 编码的字符。

    【讨论】:

      猜你喜欢
      • 2012-01-02
      • 2013-11-26
      • 1970-01-01
      • 2011-12-13
      • 2012-02-18
      • 2019-10-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多