【问题标题】:What's the equivalent of PostMethod$addParameter() in http client 4.25http客户端4.25中PostMethod$addParameter()的等价物是什么
【发布时间】:2013-09-11 13:50:03
【问题描述】:

我正在将一些遗留代码从 apache commons http 客户端 (3.0.1) 移动到 http 客户端 4.25,并且不再看到用于将 [name,value] 对传递给服务器的 PostMethod$addParameter() 方法....

在 http 客户端 4.25 中,我必须创建某种 HttpEntity,然后我可以使用 HttpPost$setEntity() 将其绑定到我的请求......

就我而言,我有一组参数,其值为(长!!)Base64 编码的文本字符串;所以我不想通过 URL 发送这些参数,而是将它们放在请求的正文中......

使用 http 客户端 4.25 执行此操作的基本习惯用法是什么???

【问题讨论】:

    标签: java apache http-post


    【解决方案1】:

    查看示例:

            List <NameValuePair> nvps = new ArrayList <NameValuePair>();
            nvps.add(new BasicNameValuePair("sub", data));          
    
            //httpost.setEntity(new UrlEncodedFormEntity(nvps, HTTP.UTF_8));
    

    您可以找到NameValuePair here 的文档

    【讨论】:

    • 注意 OP,UrlEncodedFormEntity 是 URL 编码的,但它会被写入请求的正文中。
    【解决方案2】:

    从 4.3 版开始,也可以这样做

        HttpUriRequest request = RequestBuilder.create("POST")
                .addParameter("sub", "stuff")
                .build();
    

    构建正确的 HTTP 实体的业务将由请求构建器负责。

    【讨论】:

      猜你喜欢
      • 2014-10-18
      • 1970-01-01
      • 2014-07-27
      • 2014-02-01
      • 1970-01-01
      • 2019-01-31
      • 2014-05-08
      • 2014-06-12
      • 1970-01-01
      相关资源
      最近更新 更多