【问题标题】:MultipartEntity in HTTP mime is deprecatedHTTP mime 中的 MultipartEntity 已弃用
【发布时间】:2014-12-05 02:01:47
【问题描述】:

我有一个这样声明的 MultipartEntity:

MultipartEntity httpEnt = new MultipartEntity();
httpEnt.addPart("Test", new StringBody("test", ContentType.TEXT_PLAIN));

然后我像这样打个休息电话

HttpPost http = new HttPost(url);
HttpClient httpClient = HttpClients.createDefault();
http.setEntity(httpEnt);
httpClient.execute(http);

MultipartyEntity 似乎已被弃用且无法正常工作。我正在考虑像这样使用 HttpEntity:

HttpEntity httpEnt = MultipartEntityBuilder.create().addPart("test", new StringBody(....)).build();

这个问题是我想用不同的方法添加多个部分,然后再构建。似乎如果我这样做,我将需要一次附加所有部分并构建一行代码。我还可以使用已弃用的吗?有更好的方法吗?

【问题讨论】:

    标签: java apache


    【解决方案1】:

    如果我这样做,我似乎需要一次附加所有部分并构建一行代码。

    您无需在一行中完成所有操作。 MultipartEntityBuilder.create() 调用返回一个构建器对象,您可以将其分配给一个变量,然后调用方法,一次一个作为单独的语句。然后最后调用build()方法得到HttpEntity

    (如果您不想在代码中使用“流畅”的惯用语,您就没有。)

    我还可以使用已弃用的吗?

    是的(可能)...但是转向构建和表示多部分实体的新方法是个好主意。在某些时候,可能会删除已弃用的 API1,这会给您和/或将您的代码与其他东西集成或部署的人员造成版本依赖性问题。

    有更好的方法吗?

    是的。往上看。 (尽管在这种情况下,“更好”意味着更符合您的口味。)

    相关(但不重复)问题:


    1 - 与 Sun / Oracle 不同,Apache HTTP 组件人员经常在一段时间后删除已弃用的 API。忽略第 3 方库中的弃用警告,后果自负...

    【讨论】:

      猜你喜欢
      • 2013-10-12
      • 1970-01-01
      • 2015-06-14
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      • 2022-07-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多