9

HttpDeleteには、HttpPostやHttpPutなどのsetEntity()のようなメソッドが含まれていますか?HttpPostを使用すると、次のようになります。

httppost.setEntity(new UrlEncodedFormEntity(
    getNameValuePairsForFriends(context, friendID))); 

wtih deleteでこれを行うにはどうすればよいですか?

4

5 に答える 5

4

HTTPDELETEが入力を受け取るとは思いません-GETバリアントのように機能すると思います。

HTTPクライアントによって提供される実装は、この推測もサポートしているようです。

本文で削除を提供する場合は、本文を受け入れる場所へのPOSTの使用を検討する必要があります。

しかし、あなたの質問に答えて、いいえ、削除は本文を受け入れません。クエリパラメータは追加できますが、本文は追加できません。

于 2013-01-28T11:34:57.053 に答える
4
class MyDelete extends HttpPost
{
    public MyDelete(String url){
        super(url);
    }
    @Override
    public String getMethod() {
        return "DELETE";
    }
}

クラスにhttpdeleteクラスを拡張させ、クラスのオブジェクトをエンティティに送信すると、httpdeleteにデータを投稿できるようになります。

HttpResponse httpResponse;
String result = null;
HttpClient httpClient = new DefaultHttpClient();

HttpConnectionParams
        .setConnectionTimeout(httpClient.getParams(), 10000);


MyDelete httpDelete = new MyDelete(urlUnfollowPatientBundle);
StringEntity entity = null;
try {
    entity = new StringEntity(rawData);
    httpDelete.setEntity(entity);
} catch (UnsupportedEncodingException e) {
    e.printStackTrace();
}

try {

    httpResponse = httpClient.execute(httpDelete);
    if (httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
        HttpEntity httpEntity = httpResponse.getEntity();
        result = EntityUtils.toString(httpEntity);
        status = true;
    }
于 2015-07-22T10:42:52.297 に答える
2

HTTPDeleteはペイロードを伝送しません。

HttpDeleteは、uri / urlを削除するだけで、上記のリソースにDELETEHTTPヘッダーを発行します。

于 2013-01-28T11:35:25.520 に答える
0

これを試してください、単にHttpDeleteを拡張しました:

クラスHttpDeleteWithBodyはHttpDeleteを拡張します{

private HttpEntity entity;

public HttpDeleteWithBody(String url) {
    super(url);
}

public HttpEntity getEntity() {
    return this.entity;
}

public void setEntity(final HttpEntity entity) {
    this.entity = entity;
}

}

于 2019-03-28T09:34:25.430 に答える
0

Scalaでは、次のコードはHTTPDELETEを介して本文を送信するために機能します

import org.apache.http.client.methods.HttpEntityEnclosingRequestBase
import java.net.URI

class HttpDeleteWithBody(uri: URI) extends HttpEntityEnclosingRequestBase {
  val METHOD_NAME: String = "DELETE"
  def getMethod: String = METHOD_NAME
  super.setURI(uri)
  setURI(uri)
}
于 2019-06-13T15:15:39.383 に答える