【问题标题】:Sending simple as URL parameter HttpClient GET request发送简单的 URL 参数 HttpClient GET 请求
【发布时间】:2015-09-27 13:20:42
【问题描述】:

我正在开发一个 Android 应用程序,我试图在其中发送一个简单数组作为 URL 参数,但它无法正常工作。我正在使用 HTTP 客户端和 GET 方法。我已经通过以下方式进行了尝试:

StringBuilder sb = new StringBuilder();
 sb.append(URLEncoder.encode(e.getKey(), "UTF-8")).append('=').append(URLEncoder.encode(e.getValue()+"", "UTF-8"));
where e.getValue() is ArrayList<Integers>

当我发送 [28] 时,我的 URL 参数会附加 %5B28%5D。如果我不使用 URL 编码器,那么它是 [28] 但我想使用 URL 编码器。我做错什么了吗?

【问题讨论】:

  • 没有错。 %5B 是 [ 编码
  • 是的,没有错。但我没有得到适当的回应。服务器端是否需要解码。
  • 您是否直接在网络浏览器上测试过该网址?如果是这样,输出是什么?在服务器上的调试文件中记录请求/响应。它显示了什么?
  • 我在休息客户端上尝试了相同的请求。这也没有给出任何输出。但是,如果我输入简单的参数,那么让客户端得到正确的结果。服务器端可能有解码要求

标签: java android get httpclient url-encoding


【解决方案1】:

您的代码很好。这就是 URL 编码的工作原理。 解码时服务器似乎存在问题。

调试服务器以查找任何可能的解码问题。

另请参阅this answer 以获得在 get 请求中发送数组的更好方法。

【讨论】:

    猜你喜欢
    • 2011-03-13
    • 2019-03-27
    • 1970-01-01
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2018-12-14
    • 2019-10-18
    • 1970-01-01
    相关资源
    最近更新 更多