ios - How can I escape the *s and %s in this string without breaking the URL? -
मुझे यहां यह क्रिया है:
- (IBAction) खोजबटन: (आईडी) प्रेषक {NSString * textString = self.symbolSearchField.text; एनएसURL * sourceURL = [[एनएसआरएल आलोक] इनिटविथस्ट्रिंग: [एनएसएसटीइंग स्ट्रिंगवैटफॉर्मैट: @ "http://query.yahooapis.com/v1/public/yql?q=select%%20*%%20from%%20yahoo.finance.quotes %% 20where %% 20symbol %% 20in %% 20 %% 28 %% 22% @ %% 22 %% 29 और amp; env = store: //datatables.org/alltableswithkeys ", टेक्स्टस्ट्रिंग]]; NSXMLParser * पार्सर = [[NSXMLParser alloc] initWithContentsOfURL: sourceURL]; Parser.delegate = self; [पार्सर पार्स]; मैं इसे खोज फ़ील्ड से टेक्स्ट लेना चाहता हूं, उस टेक्स्ट के साथ यूआरएल को संशोधित कर, और यूआरएल से एक्सएमएल को पार्स करना चाहता हूं। हालांकि, जब मैं * s और% s से बचता हूं, ऐसा प्रतीत होता है कि यूआरएल "टूट" हो जाता है, और यह पार्स नहीं करता है। अगर मैं यूआरएल को छोड़ता हूं क्योंकि यह बचने के बिना था ...
NSURL * sourceURL = [[एनएसURL आलोक] initWithString: [NSString stringWithFormat: @ "http://query.yahooapis.com/ ? v1 / सार्वजनिक / YQL q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20%28%22%@%22%29& env = दुकान: //datatables.org/alltableswithkeys ", पाठ की पंक्ति]]; ... तो मुझे "अमान्य रूपांतरण विनिर्देशक '*'" और "डेटा तर्कों की तुलना में अधिक '%' रूपांतरण मिलता है।
तो मेरा प्रश्न है, मैं कैसे यूआरएल को तोड़ने के बिना प्रतीकों से बच सकता हूं?
संपादित करें स्पष्टता के लिए, समायोजन।
NSString * textString = self.symbolSearchField.text; NSString * query = [NSString stringWithFormat: @ "yahoo.finance.quotes से चुनें * जहां प्रतीक (\"% @ \ ")", टेक्स्टस्ट्रिंग]; NSString * escapedStoreURL = [@ "store: //datatables.org/alltableswithkeys" स्ट्रिंगबैडिंगप्रिंट एन्कोडिंगविवेषित स्वीकार्यः [NSCharacterSet URLHostAllowedCharacterSet]]; NSString * escapedQuery = [क्वेरी स्ट्रिंगबैएडिंगप्रिंटएन्कोडिंगविवेषित स्वीकार्यः [NSCharacterSet URLHostAllowedCharacterSet]]; NSString * URLString = [NSString stringWithFormat: @ "http://query.yahooapis.com/v1/public/yql?q=%@&env=%@", एस्केपएक्लाइज, बच निकला StoreURL]; NSURL * sourceURL = [NSURL URLWithString: URLString]; NSXMLParser * पार्सर = [[NSXMLParser alloc] initWithContentsOfURL: sourceURL]; Parser.delegate = self; [पार्सर पार्स];
इसे आज़माएं:
एनएसएसटीइंग * प्रथमपार्ट = @ "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20yahoo.finance.quotes%20where%20symbol%20in%20%28%22" ; एनएसएसटीइंग * अंतिमपर्टी = @ "% 22% 29 और एनवी = स्टोर: //datatables.org/alltableswithkeys"; NSURL * sourceURL = [[NSURL alloc] initWithString: [NSString stringWithFormat: @ "% @% @% @", प्रथम भाग, टेक्स्टस्ट्रिंग, अंतिम पृष्ठ]]; संपादित करें
आप पहले से ही वहां से बचने वाले सभी होने के बजाय उस क्वेरी प्रोग्राम से बचने पर विचार करना चाह सकते हैं स्टोर यूआरएल को यूआरएल एन्कोडेड भी होना चाहिए।
NSString * query = [NSString stringWithFormat: @ "yahoo.finance.quotes से * चयन करें जहां प्रतीक (\"% @ \ ") में" , पाठ की पंक्ति]; NSString * escapedStoreUrl = [@ "store: //datatables.org/alltableswithkeys" स्ट्रिंगबैडिंगप्रिंट एन्कोडिंगविवेषित स्वीकार्यः [NSCharacterSet URLHostAllowedCharacterSet]]; NSString * escapedQuery = [क्वेरी स्ट्रिंगबैएडिंगप्रिंटएन्कोडिंगविवेषित स्वीकार्यः [NSCharacterSet URLHostAllowedCharacterSet]]; NSString * urlString = [NSString stringWithFormat: @ "http://query.yahooapis.com/v1/public/yql?q=%@&env=%@", एस्कैप्ड एक्सेल, बच गया स्टोअर यूआरएल]; 2 तो मैं वापस आ गया और इस समस्या को फिर से देख रहा था, और यह पता चला है कि कुछ अदृश्य थे यू और ओ के बीच के अक्षरों में yahoo.finance.quotes और alltableswithkeys के दो एलएस (विशेषकर, दो) में से अक्षर। इन्हें आपकी समस्या ठीक करनी चाहिए। इसे चालू किया गया था।
Comments
Post a Comment