2009-10-09 9 views
5

का उपयोग कर एक्सएमएल पोस्ट रीस्ट अनुरोध क्या किसी के पास पाइथन के साथ एक रीस्टफुल एपीआई में एक्सएमएल पोस्ट अनुरोध भेजने का एक सरल उदाहरण है? मैं urllib2 पायथन लाइब्रेरी का उपयोग किसी भी भाग्य के साथ हार्वेस्ट एपीआई में "एक नई परियोजना बनाने" के लिए करने की कोशिश कर रहा हूं। पेलोड चर एक मान्य XML दस्तावेज है कि एक के पास कॉपी/अपनी दस्तावेज़ीकरण का पेस्ट है (के तहत नया बनाएँ परियोजना शीर्षक) यहाँ दिखाया गया है:पाइथन

http://www.getharvest.com/api/projects

यहाँ कोड मैं निष्पादित करने के लिए कोशिश कर रहा हूँ है।

def postRequest(): 
    """ Makes POST request to url, and returns a response. """ 
    url = 'http://subdomain.harvestapp.com/projects' 

    opener = urllib2.build_opener() 
    opener.addheaders = [('Accept', 'application/xml'), 
         ('Content-Type', 'application/xml'), 
         ('Authorization', 'Basic %s' % base64.encodestring('%s:%s' % (self.username, self.password))[:-1]), 
         ('User-Agent', 'Python-urllib/2.6')] 

    req = urllib2.Request(url=url, data=payload) 
    assert req.get_method() == 'POST' 
    response = self.opener.open(req) 
    print response.code 

    return response 

मैं एक जवाब कोड 200 (स्थिति ठीक) के बजाय एक प्रतिक्रिया कोड 201 (निर्मित) प्राप्त ... इस हार्वेस्ट समर्थन लोगों के लिए एक सवाल है?

किसी भी संकेत के किसी भी संकेत की सराहना की जाएगी।

धन्यवाद, जेफ़।

उत्तर

1

200 प्रतिक्रिया वापस करना आम है, भले ही 201 प्रतिक्रिया सख्ती से अधिक उपयुक्त हो। क्या आप वाकई सही तरीके से संसाधित नहीं हैं भले ही आपको 'सही' प्रतिक्रिया मिल रही हो?

1

आप जहां भी प्रतिक्रिया बनाते हैं, उस स्थान को छोड़कर आप स्थानीय ओपनर का उपयोग कर रहे हैं, जहां आप self.opener का उपयोग करते हैं, जो समस्या की तरह दिखता है।