2012-08-06 18 views
16

मैं अनुरोध मॉड्यूल के साथ कुछ पुराने पायथन कोड को फिर से लिखने की कोशिश कर रहा हूं। उद्देश्य एक अनुलग्नक अपलोड करना है।पाइथन अनुरोध http http को कैसे निर्दिष्ट करें?

https://api.elasticemail.com/attachments/upload?username=yourusername&api_key=yourapikey&file=yourfilename 

पुराने कोड है जो काम करता है::

h = httplib2.Http()   
     resp, content = h.request('https://api.elasticemail.com/attachments/upload?username=omer&api_key=b01ad0ce&file=tmp.txt', 
     "PUT", body=file(filepath).read(), 
     headers={'content-type':'text/plain'}) 

कैसे अनुरोधों में शरीर के अंग का उपयोग करने नहीं मिला मेल सर्वर निम्नलिखित विनिर्देश की आवश्यकता है।

मैं निम्न कार्य करने में कामयाब रहे:

response = requests.put('https://api.elasticemail.com/attachments/upload', 
        data={"file":filepath},       
        auth=('omer', 'b01ad0ce')     
        ) 

लेकिन यह कैसे फ़ाइल की सामग्री के साथ शरीर के अंग निर्दिष्ट करने के लिए पता नहीं है।

आपकी मदद के लिए धन्यवाद। ओमर।

उत्तर

37

docs

डेटा से हवाला देते हुए - (वैकल्पिक) शब्दकोश या बाइट्स अनुरोध के शरीर में भेजने के लिए।

तो यह काम (परीक्षण नहीं) चाहिए:

filepath = 'yourfilename.txt' 
with open(filepath) as fh: 
    mydata = fh.read() 
    response = requests.put('https://api.elasticemail.com/attachments/upload', 
       data=mydata,       
       auth=('omer', 'b01ad0ce'), 
       headers={'content-type':'text/plain'}, 
       params={'file': filepath} 
       ) 
+0

बहुत धन्यवाद !!!! –

0

मैं इस बात मिला अजगर और यह के अनुरोध मॉड्यूल का उपयोग कर काम किया। इसके साथ हम पेज इनपुट मूल्य के रूप में एक फ़ाइल सामग्री प्रदान कर सकते हैं। नीचे कोड देखें,

import json 
import requests 

url = 'https://Client.atlassian.net/wiki/rest/api/content/87440' 
headers = {'Content-Type': "application/json", 'Accept': "application/json"} 
f = open("file.html", "r") 
html = f.read() 
data={} 
data['id'] = "87440" 
data['type']="page" 
data['title']="Data Page" 
data['space']={"key":"AB"} 
data['body'] = {"storage":{"representation":"storage"}} 
data['version']={"number":4} 
print data 
data['body']['storage']['value'] = html 
print data 
res = requests.put(url, json=data, auth=('Username', 'Password')) 

print (res.status_code) 
print (res.raise_for_status()) 

यह पूछने के लिए स्वतंत्र महसूस करें कि आपको कोई संदेह है या नहीं।

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