আমি প্রায় খেলছি, URL টি ছোট করার জন্য tr.im এপিআই ব্যবহার করতে কিছু কোড লেখার চেষ্টা করছি ।
Http://docs.python.org/library/urllib2.html পড়ার পরে , আমি চেষ্টা করেছি:
TRIM_API_URL = 'http://api.tr.im/api'
auth_handler = urllib2.HTTPBasicAuthHandler()
auth_handler.add_password(realm='tr.im',
uri=TRIM_API_URL,
user=USERNAME,
passwd=PASSWORD)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('%s/trim_simple?url=%s'
% (TRIM_API_URL, url_to_trim))
url = response.read().strip()
প্রতিক্রিয়া কোডটি 200 (আমার মনে হয় এটি 202 হওয়া উচিত)। ইউআরএলটি বৈধ, তবে প্রাথমিক HTTP প্রমাণীকরণটি কাজ করেছে বলে মনে হয় না, কারণ সংক্ষিপ্ত URL টি আমার URL গুলির তালিকায় নেই ( http://tr.im/?page=1- এ ))
Http://www.voidspace.org.uk/python/articles/authentication.shtml#doing-it-papererly পড়ার পরে আমি চেষ্টাও করেছি:
TRIM_API_URL = 'api.tr.im/api'
password_mgr = urllib2.HTTPPasswordMgrWithDefaultRealm()
password_mgr.add_password(None, TRIM_API_URL, USERNAME, PASSWORD)
auth_handler = urllib2.HTTPBasicAuthHandler(password_mgr)
opener = urllib2.build_opener(auth_handler)
urllib2.install_opener(opener)
response = urllib2.urlopen('http://%s/trim_simple?url=%s'
% (TRIM_API_URL, url_to_trim))
url = response.read().strip()
তবে আমি একই ফলাফল পেতে। (প্রতিক্রিয়া কোডটি 200 এবং url বৈধ, তবে http://tr.im/ এ আমার অ্যাকাউন্টে রেকর্ড করা হয়নি )
আমি যদি বেসিক এইচটিটিপি প্রমাণীকরণের পরিবর্তে কোয়েরি স্ট্রিং প্যারামিটার ব্যবহার করি তবে:
TRIM_API_URL = 'http://api.tr.im/api'
response = urllib2.urlopen('%s/trim_simple?url=%s&username=%s&password=%s'
% (TRIM_API_URL,
url_to_trim,
USERNAME,
PASSWORD))
url = response.read().strip()
... তবে শুধুমাত্র ইউআরএল বৈধ নয় এটি আমার ট্রিম আইনে অ্যাকাউন্টে রেকর্ড করা আছে। (যদিও প্রতিক্রিয়া কোড এখনও 200) is
আমার কোডে অবশ্যই কিছু ভুল থাকতে হবে (এবং ট্রিমিমের এপিআই নয়), কারণ
$ curl -u yacitus:xxxx http://api.tr.im/api/trim_url.json?url=http://www.google.co.uk
... ফেরত:
{"trimpath":"hfhb","reference":"nH45bftZDWOX0QpVojeDbOvPDnaRaJ","trimmed":"11\/03\/2009","destination":"http:\/\/www.google.co.uk\/","trim_path":"hfhb","domain":"google.co.uk","url":"http:\/\/tr.im\/hfhb","visits":0,"status":{"result":"OK","code":"200","message":"tr.im URL Added."},"date_time":"2009-03-11T10:15:35-04:00"}
... এবং URL এ URL গুলির আমার তালিকায় প্রদর্শিত হচ্ছে না http://tr.im/?page=1 ।
এবং যদি আমি চালাতে পারি:
$ curl -u yacitus:xxxx http://api.tr.im/api/trim_url.json?url=http://www.google.co.uk
... আবার, আমি পেয়েছি:
{"trimpath":"hfhb","reference":"nH45bftZDWOX0QpVojeDbOvPDnaRaJ","trimmed":"11\/03\/2009","destination":"http:\/\/www.google.co.uk\/","trim_path":"hfhb","domain":"google.co.uk","url":"http:\/\/tr.im\/hfhb","visits":0,"status":{"result":"OK","code":"201","message":"tr.im URL Already Created [yacitus]."},"date_time":"2009-03-11T10:15:35-04:00"}
নোট কোডটি 201, এবং বার্তাটি "tr.im URL ইতিমধ্যে তৈরি [ইয়াসিটাস]"।
আমি অবশ্যই বেসিক এইচটিটিপি প্রমাণীকরণ সঠিকভাবে করব না (উভয় প্রয়াসে)। আপনি আমার সমস্যা স্পট করতে পারেন? সম্ভবত আমার সন্ধান করা উচিত এবং তারের উপরে কী পাঠানো হচ্ছে তা দেখতে হবে? আমি এর আগে কখনও করিনি। পাইথন এপিআইগুলি কি আমি ব্যবহার করতে পারি (সম্ভবত পিডিবিতে)? বা অন্য কোনও সরঞ্জাম আছে (ম্যাক ওএস এক্সের পক্ষে ভাল) আমি ব্যবহার করতে পারি?
"WWW-Authenticate"
urllib2 (বা httplib2) আপনার শংসাপত্র প্রেরণের আগে অবশ্যই সাইটের অবশ্যই 401 কোডটি পাঠানো উচিত এবং কোডটি অবশ্যই । আমার উত্তর নীচে দেখুন ।