2011-02-13 18 views
7

मैं के रूप में यह http://localhost:8080/read?date=whateverबिल्ड HTTP GET अनुरोध पैरामीटर

इस प्रकार मैं कई की कोशिश की है, GET अनुरोध है कि एक पोर्ट संख्या और कुछ पैरामीटर शामिल हों के लिए एक URL बनाने के एक बहुत ही सरल बात करने के लिए कोशिश कर रहा हूँ, सफलता के बिना तरीके, यह बहुत मुश्किल नहीं होना चाहिए लेकिन मैं समाधान के साथ नहीं आ सकता।

मुझे आशा है कि किसी ने मुझे मदद करता है, यह बहुत पहले से

उत्तर

12

पिछले जवाब सवाल करने के लिए आप वास्तव में नहीं कहा गया था में सराहना

धन्यवाद किया जाएगा। इसे आज़माएं:

import urllib 

myPort = "8080" 
myParameters = { "date" : "whatever", "another_parameters" : "more_whatever" } 

myURL = "http://localhost:%s/read?%s" % (myPort, urllib.urlencode(myParameters)) 

असल में, urllib में आप जो चाहते हैं उसे करने के लिए एक फ़ंक्शन है, जिसे urlencode कहा जाता है। इसे एक पैरामीटर/पैरामीटर_वल्यू जोड़े जो आप चाहते हैं उसे पास करें, और यह उचित पैरामीटर स्ट्रिंग करेगा जो आपको '?' के बाद चाहिए आपके यूआरएल में

+1

अरे, मैंने इसका एक समान समाधान करने का प्रयास किया। समस्या यह है कि भले ही यूआरएल सही ढंग से बनाया गया हो, मुझे यह त्रुटि मिलती है: 'httplib.InvalidURL: nonnumeric port: '8080/read? प्रारंभिक दिनांक = जो भी' क्या किसी अन्य लाइब्रेरी या कुछ का उपयोग करके ऐसा करने का कोई और तरीका है? फिर भी धन्यवाद! –

-3
data = urllib2.urlopen(url).read() 
+0

कृपया, आप एक अधिक सविस्तार जवाब दे सकता है? मैं अजगर के लिए नया हूं और मैं देखना चाहता हूं कि यह चरण-दर-चरण कैसे किया जाता है। धन्यवाद –

+0

कृपया पर्याप्त उदाहरण वाले मौजूदा पायथन दस्तावेज़ों की जांच करें: http://docs.python.org/library/urllib2.html –

1

यहाँ एक सरल सामान्य वर्ग है कि आप (री) कर सकते हैं का उपयोग करें:

import urllib 
class URL: 
    def __init__(self, host, port=None, path=None, params=None): 
     self.host = host 
     self.port = port 
     self.path = path 
     self.params = params 

    def __str__(self): 
     url = "http://" + self.host 
     if self.port is not None: 
      url += ":" + self.port 
     url += "/" 
     if self.path is not None: 
      url += self.path 
     if self.params is not None: 
      url += "?" 
      url += urllib.urlencode(self.params) 
     return url 

तो तुम कर सकता है:

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