2013-01-28 4 views
7

में setEntity क्या HttpDelete में SetEntity(), जैसे HttpPost या HttpPut जैसी कोई विधि है? जब मैं का उपयोग HttpPost मैं कुछ इस तरह करते हैं:HttpDelete

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

मैं wtih के साथ ऐसा कैसे कर सकते हैं हटाना चाहते हैं?

+1

HttpDelete में डेटा पोस्ट करने के लिए इकाई का समर्थन नहीं करता सक्षम हो जाएगा। तो आपको इसे फिर से लागू करना होगा। [इस जवाब है] [1] [1]: http://stackoverflow.com/questions/3773338/httpdelete-with-body – nebyan

उत्तर

3

मुझे विश्वास नहीं है कि HTTP DELETE इनपुट लेता है - मेरा मानना ​​है कि यह एक जीईटी संस्करण की तरह कार्य करता है।

HTTP क्लाइंट द्वारा प्रदान किया गया कार्यान्वयन इस अनुमान का भी समर्थन करता है।

यदि आप किसी शरीर के साथ एक डिलीवरी प्रदान करना चाहते हैं, तो आप किसी स्थान को उस स्थान पर पोस्ट का उपयोग करने पर विचार करना चाहेंगे जो शरीर को स्वीकार करता है।

लेकिन आपके प्रश्न के उत्तर में, नहीं, हटाएं शरीर को स्वीकार नहीं करता है। आप क्वेरी पैरामीटर जोड़ सकते हैं लेकिन शरीर नहीं।

+0

मानक HTTP को हटाएँ इनपुट नहीं ले करता है अनुसार। लेकिन आपको एक सर्वर एपीआई का सामना करना पड़ सकता है जिसके लिए HTTP DELETE विधि में भेजे गए फॉर्म डेटा की आवश्यकता होती है। यह गलत है लेकिन ऐसा होता है। – nuoritoveri

2

HTTPDelete में कोई भी पेलोड नहीं होगा।

HttpDelete केवल यूरी/यूआरएल को हटाने के लिए ले जाएगा और कहा गया संसाधन के लिए एक हटाए गए HTTP शीर्षलेख को जारी करेगा।

0
class MyDelete extends HttpPost 
{ 
    public MyDelete(String url){ 
     super(url); 
    } 
    @Override 
    public String getMethod() { 
     return "DELETE"; 
    } 
} 

अपनी कक्षा http वहाँ पर और अपनी कक्षा भेजा संस्था की वस्तु बनाने के दौरान वर्ग को नष्ट का विस्तार करें और आप 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; 
    } 
+0

कृपया अपना उत्तर सही तरीके से प्रारूपित करें। वर्तमान में, इसे पढ़ना मुश्किल है। इसके अलावा, कृपया इसे थोड़ा बेहतर समझाएं, ऐसा लगता है कि स्वीकृत उत्तर के साथ संघर्ष होता है। – anderas

+0

आप 'httpDelete.setEntity' नहीं कर सकते हैं। 'Httpdelete' के लिए 'setEntity' कोई विधि नहीं है, यह समस्या है। – Kayvar

+0

@Kayvar, कोड पढ़ें, @ user2306383 HttpPost को बढ़ाता है और फिर स्थानीय var 'httpPost' नाम देता है, जिसमें वास्तव में 'setEntity' विधि होती है – liltitus27