有没有办法强制 httpie 对查询参数中的空格使用“%20”而不是“+”?

Is there a way to force httpie to use '%20' instead of '+' for spaces in query parameters?

使用 httpie v2.3.0,我正在与一个 REST api 交互,它识别 %20 但不识别查询参数值中 space 编码的 +。有没有办法更改 httpie 行为以实现以下所需的行为?

查询:

http -v :9000/query/bugsigdb/jaccard_nbor_ss 'source.type==signature' \
  source=='Signature 123' e_type==Signature_Taxonomy rev_e_type==Taxonomy_Signature

结果:

GET /query/bugsigdb/jaccard_nbor_ss?source.type=signature&source=Signature+123&e_type=Signature_Taxonomy&rev_e_type=Taxonomy_Signature HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:9000
User-Agent: HTTPie/2.3.0

想要的结果:

GET /query/bugsigdb/jaccard_nbor_ss?source.type=signature&source=Signature%20123&e_type=Signature_Taxonomy&rev_e_type=Taxonomy_Signature HTTP/1.1
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Host: localhost:9000
User-Agent: HTTPie/2.3.0

注意Signature+123Signature%20123的区别。

目前,当您使用 param==value 语法时,无法指示 HTTPie 使用 %20 而不是 + 作为空格。如果您想对此进行控制,那么将参数指定为 URL 的一部分是可行的方法。您可以尝试为此打开一个新问题:https://github.com/httpie/httpie/issues/new