2009-10-09 16 views
5

Herkesin bir Python ile RESTful API'sine XML POST isteği göndermek için basit bir örneği var mı? Hasat API'sinde şanssız olarak "yeni bir proje oluşturmak" için urllib2 Python kitaplığını kullanmaya çalışıyorum. yük değişken onların belgelerin yakın bir kopyala/yapıştır, geçerli bir XML belgesidir (altında Yeni Proje başlığı oluşturma) Burada gösterilen: Burada XML POST DESTEĞİ Python kullanarak isteme

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

Ben yürütmeye çalışıyorum koddur.
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 

bu Hasat Destek adamlar için bir soru ... Bir yanıt kodu 200 (Durum OK) yerine 201 (Oluşturulan) bir yanıt kodu alır?

Herkesin bildiği herhangi bir ipucu büyük takdir edilecektir.

Teşekkürler, Jeff.

cevap

1

201 yanıtı kesinlikle daha uygun olduğunda bile 200 yanıt döndürmek yaygındır. 'Doğru' yanıt alsanız bile isteğin doğru işlenmediğinden emin misiniz?

1

Yanıtı oluşturduğunuz satırın dışında, sorun gibi görünen self.opener'u kullandığınız her yerde yerel bir açıcı kullanıyorsunuz.