android - 带正文的 HttpDelete

标签 android httpclient webservice-client http-delete

我正在尝试使用 HttpDelete 对象来调用 Web 服务的删除方法。 Web 服务的代码从消息的正文中解析 JSON。但是,我不明白如何将正文添加到 HttpDelete 对象。有没有办法做到这一点?

使用 HttpPut 和 HttpPost,我调用 setEntity 方法并传入我的 JSON。 HttpDelete 似乎没有任何此类方法。

如果无法为 HttpDelete 对象设置主体,请您将我链接到使用 HttpDelete 父类(super class)的资源,以便我可以设置方法(删除)并设置主体。我知道这并不理想,但此时我无法更改网络服务。

最佳答案

您是否尝试过如下覆盖 HttpEntityEnclosureRequestBase:

import org.apache.http.client.methods.HttpEntityEnclosingRequestBase;
import java.net.URI;
import org.apache.http.annotation.NotThreadSafe;

@NotThreadSafe
class HttpDeleteWithBody extends HttpEntityEnclosingRequestBase {
    public static final String METHOD_NAME = "DELETE";
    public String getMethod() { return METHOD_NAME; }

    public HttpDeleteWithBody(final String uri) {
        super();
        setURI(URI.create(uri));
    }
    public HttpDeleteWithBody(final URI uri) {
        super();
        setURI(uri);
    }
    public HttpDeleteWithBody() { super(); }
}

这将创建一个具有 setEntity 方法的 HttpDelete-lookalike。我认为抽象类几乎可以为您完成所有工作,所以这可能就是您所需要的。

FWIW,代码基于 this source to HttpPost that Google turned up .

关于android - 带正文的 HttpDelete,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3773338/

相关文章:

Android Studio 与物理设备断开连接

android - 仅在 list 中为手机申报的正确方法

java - 在 Windows 中运行 android httpclient 代码需要进行哪些更改?

java - 更新Android应用程序时如何更新在单独进程中运行的服务?

java - 如何使用 fastxml jackson 忽略我没有的对象

c# - 使用 C# 和 httpclient 将请求发送到 Rest Api

android - 接受带有自签名证书的 HTTPS 连接

java - 从 wsdl 生成 JAX-WS 客户端抽象接口(interface)

java - 由于 java 中缺少证书(基于 XML SOAP)而导​​致使用 Web 服务时出错

java - 集群环境下的Web服务