कर्ल में की तरह मैं यह नहीं:अजगर कोड कर्ल
curl -u email:password http://api.foursquare.com/v1/venue.json?vid=2393749
कैसे मैं अजगर में इस एक ही बात कर सकते हैं?
कर्ल में की तरह मैं यह नहीं:अजगर कोड कर्ल
curl -u email:password http://api.foursquare.com/v1/venue.json?vid=2393749
कैसे मैं अजगर में इस एक ही बात कर सकते हैं?
"समस्या हो सकती है कि अजगर पुस्तकालयों, HTTP-मानक के अनुसार, पहली बार एक अप्रमाणित अनुरोध, सही साख भेजा जाता है भेजने के लिए, और उसके बाद ही अगर यह एक 401 पुन: प्रयास के साथ जवाब है, तो। Foursquare सर्वर "पूरी तरह से मानक प्रमाणीकरण" ऐसा नहीं तो पुस्तकालयों काम नहीं करेगा करते
हेडर का उपयोग करके प्रमाणीकरण करने की कोशिश करें। "
Python urllib2 Basic Auth Problem
import urllib2
import base64
req = urllib2.Request('http://api.foursquare.com/v1/venue.json?vid=%s' % self.venue_id)
req.add_header('Authorization: Basic ',base64.b64encode('email:password'))
res = urllib2.urlopen(req)
012 से taked
pycurl उपयोग
वहाँ ट्यूटोरियल
एक विशिष्ट उदाहरण के लिए इतने पर एक चर्चा है:
import sys
import pycurl
class ContentCallback:
def __init__(self):
self.contents = ''
def content_callback(self, buf):
self.contents = self.contents + buf
t = ContentCallback()
curlObj = pycurl.Curl()
curlObj.setopt(curlObj.URL, 'http://www.google.com')
curlObj.setopt(curlObj.WRITEFUNCTION, t.content_callback)
curlObj.perform()
curlObj.close()
print t.contents
आप 'pycurl' का उपयोग कर सकते हैं, लेकिन इसकी आवश्यकता नहीं है। मानक पुस्तकालय का उपयोग करना काफी संभव है। ऊपर दिए गए प्रश्न को देखें। –
यहाँ pycurl में बराबर है:
import pycurl
from StringIO import StringIO
response_buffer = StringIO()
curl = pycurl.Curl()
curl.setopt(curl.URL, "http://api.foursquare.com/v1/venue.json?vid=2393749")
curl.setopt(curl.USERPWD, '%s:%s' % ('youruser', 'yourpassword'))
curl.setopt(curl.WRITEFUNCTION, response_buffer.write)
curl.perform()
curl.close()
response_value = response_buffer.getvalue()
मैं और अधिक आरामदायक उपप्रक्रिया के माध्यम से कमांड लाइन कर्ल चल रहा हूँ। यह पाइथन, pycurl, और libcurl के सभी संभावित संस्करण मिलान सिरदर्द से बचाता है। यह अवलोकन कि pycurl को 2 वर्षों में छुआ नहीं गया है, और केवल पायथन 2.5 के माध्यम से समर्थित के रूप में सूचीबद्ध है, मुझे सावधान बना दिया। - जॉन
import subprocess
def curl(*args):
curl_path = '/usr/bin/curl'
curl_list = [curl_path]
for arg in args:
curl_list.append(arg)
curl_result = subprocess.Popen(
curl_list,
stderr=subprocess.PIPE,
stdout=subprocess.PIPE).communicate()[0]
return curl_result
answer = curl('-u', 'email:password', 'http://api.foursquare.com/v1/venue.json?vid=2393749')
अगर उपयोग human_curl आप कुछ कोड
आयात human_curl लिख सकते हैं के रूप में उछालना
r = hurl.get('http://api.foursquare.com/v1/venue.json?vid=2393749', auth=('email','password'))
r.content में
JSON डेटा
सी [पायथन urllib2 मूल प्रमाणीकरण समस्या ] (http: // stackoverflow .com/प्रश्न/2407126/पायथन-urllib2-basic-auth-problem), जो कि Python पर फोरस्क्वेयर के साथ मूल एथ का उपयोग करने के बारे में है। –