मुझे पता है यह पुराना है, लेकिन मैं समझ मैं समाधान में फेंक अगर आप httplib2 साथ अजगर 3 का उपयोग कर रहे के बाद से मैं नहीं किया है यह कहीं और खोजने के लिए सक्षम था। मैं प्रत्येक जेनकींस उपयोगकर्ता के लिए एपीआई टोकन का उपयोग कर जेनकिंस सर्वर के खिलाफ भी प्रमाणीकरण कर रहा हूं। यदि आप जेनकींस से चिंतित नहीं हैं, तो एपीआई टोकन के लिए वास्तविक उपयोगकर्ता का पासवर्ड बस प्रतिस्थापित करें।
बी 64encode ASCII वर्णों की बाइनरी स्ट्रिंग की अपेक्षा कर रहा है। पाइथन 3 के साथ एक सादा स्ट्रिंग पारित होने पर टाइपरर उठाया जाएगा। इसके चारों ओर जाने के लिए, हेडर के "उपयोगकर्ता: api_token" भाग को 'ascii' या 'utf-8' का उपयोग करके एन्कोड किया जाना चाहिए, b64encode को पास किया गया है, तब परिणामस्वरूप बाइट स्ट्रिंग को हेडर में रखने से पहले एक सादे स्ट्रिंग को डीकोड किया जाना चाहिए। निम्नलिखित कोड ने मुझे जो किया था:
import httplib2, base64
cred = base64.b64encode("{0}:{1}".format(
<user>, <api_token>).encode('utf-8')).decode()
headers = {'Authorization': "Basic %s" % cred}
h = httplib2.Http('.cache')
response, content = h.request("http://my.jenkins.server/job/my_job/enable",
"GET", headers=headers)
यह अंतर्निहित 'httplib' के लिए भी काम करता है, नीचे मेरा उत्तर देखें। –
अच्छी तरह से अगर आप जेनकिंस/हडसन – Toskan