我需要通过Play Framework在GET请求中获取二进制数据。这用于从BitTorrent客户端获取info_hash。在Play Framework中获取二进制HTTP GET参数
我得到这样的:
byte[] infoHash = params.get("info_hash").getBytes("ISO-8859-1")
不幸被取代的0x3F所有非ASCII符号。
P.S.我可以从Http.Request.current()。querystring获取url编码参数,但这是一个坏主意。
更新:我重写play.data.parsing.UrlEncodedParser.parse(InputStream is)
方法与我的变种,其中常用的ISO-8859-1的参数,而不是硬编码的UTF-8在原有的所有工作,因为它应该。但我仍然在寻找更好的方法,因为我不想编辑框架源代码。
为什么不使用POST代替GET? – fmucar 2011-02-03 11:54:22
BitTorrent客户端只使用GET请求给播音员。 – lafayette 2011-02-03 11:56:42