2011-12-13 12 views
6

मैं ऐसे अनुरोध कैसे कर सकता हूं जिसमें कोई हेडर फ़ील्ड न हो? अनुरोधों को स्क्रैच से अपने सर्वर कार्यान्वयन में भेजा जा रहा है, जो हेडर फ़ील्ड की परवाह नहीं करता है। अनुरोध में केवल एक पोस्ट बॉडी होगी। अगर मुझे कुछ तार्किक याद आ रही है तो मुझे बताएं।एक NSMutableURLRequest में हेडर को कैसे निकालें?

कृपया मुझे ASIHTTPRequest के बारे में न बताएं। धन्यवाद।

+0

आप कभी भी इस का उत्तर नहीं मिलता है? मैं सभी शीर्षकों को हटाने की कोशिश कर रहा हूं और यहां प्रतिक्रियाएं आज काम नहीं कर रही हैं – Jan

उत्तर

1
  1. यदि आप सर्वर कार्यान्वयन को नियंत्रित करते हैं, तो उन्हें केवल अनदेखा क्यों न करें?

  2. [request setAllHTTPHeaderFields:[NSDictionary dictionary]] काम करता है?

  3. # 2 काम नहीं किया है, तो valueForHTTPHeaderField: विधि से अपने खुद के उपवर्ग कि हमेशा allHTTPHeaderFields विधि से एक खाली शब्दकोश देता है, और nil बनाने का प्रयास करें। लेकिन NSURLConnection आपके अनुरोध की एक प्रति बना सकता है, इसलिए आपको copyWithZone: को ओवरराइड करना पड़ सकता है।

+0

# 1 प्रत्येक बाइट ने इस कार्यान्वयन के लिए मामलों को बचाया। –

+0

# 2 काम नहीं करेगा क्योंकि यह आंतरिक शब्दकोश को ओवरराइड नहीं करता है। यह सिर्फ चाबियाँ ओवरराइड कर रहा है, अगर कोई है। मैं subclassing को देखता हूँ और अगर आपको मदद करता है तो आपको बताएगा। –

9

मैं एक NSMutableURLRequest पर विशिष्ट शीर्ष लेख को दूर करना चाहता था के रूप में, मैं सिर्फ इतना है कि मिल गया है बुला setValue: forHTTPHeaderField: के साथ एक नहीं के बराबर मूल्य वास्तव में उसे निकाल देता है।

यह ऐप्पल द्वारा दस्तावेज नहीं है, लेकिन यह काफी तार्किक लगता है।

+4

बस उन लोगों के लिए जिन्होंने Google के साथ यह पृष्ठ पाया - यह अब और काम नहीं कर रहा है (मैं 10.8 एसडीके का उपयोग कर रहा हूं)। यदि आप इसे शून्य पर सेट करते हैं, तो उपयोगकर्ता-एजेंट बिल्कुल नहीं बदला जाएगा। – wecing

+0

यह कस्टम हेडर के साथ आईओएस 6.1 एसडीके पर मेरे लिए काम करता है (मैंने उपयोगकर्ता-एजेंट का परीक्षण नहीं किया)। –

0

मैंने पाया कि शीर्ष लेख फ़ील्ड से कुछ के लिए, का उपयोग कर

[request addValue:nil forHTTPHeaderField:@"User-Agent"]; 

वास्तव में, शीर्ष लेख क्षेत्र को दूर नहीं करता बल्कि नहीं के बराबर करने के लिए शीर्ष लेख मान सेट ("उपयोगकर्ता-एजेंट" उनमें से एक है) इसे डिफ़ॉल्ट मान पर सेट करता है!

आप वास्तव में सामग्री निकालने के लिए चाहते हैं, यह काफी सेटिंग

[request addValue:@"" forHTTPHeaderField:@"User-Agent"]; 
1

साथ एक रिक्त स्ट्रिंग पर मूल्य मेरे लिए कोड

[request addValue:@"" forHTTPHeaderField:@"User-Agent"]; 

केवल सफाई के बजाय एक खाली स्ट्रिंग जोड़ा है उपयोगकर्ता-एजेंट इसके बजाय, setValue का उपयोग कर इसे तय:

[request setValue:@"" forHTTPHeaderField:@"User-Agent"]; 
+0

बस एक नोट है कि यह सही जवाब है। addValue पिछले मान को नया मान जोड़ देगा, अल्पविराम सीमित है। setValue पिछले मान को प्रतिस्थापित करेगा। –

संबंधित मुद्दे