使用以下代碼片段訪問帶有帖子的網址。python - urrlib2請求https站點 - 獲得400錯誤
我可以使用wget得到它,以下內容: wget的--post數據 'p_calling_proc = bwckschd.p_disp_dyn_sched & p_term = 201010' https://spectrumssb2.memphis.edu/pls/PROD/bwckgens.p_proc_term_date
出於某種原因,我有一個問題與我的蟒蛇文中,我得到的400一個錯誤代碼(當然瀏覽器工作正常)
任何想法/評論/等..
蟒蛇測試,我有:
// ==========================================
import urllib
import urllib2
import sys, string
import time
import mechanize
Request = urllib2.Request
urlopen = urllib2.urlopen
headers ={'User-Agent': 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)'}
query = "p_calling_proc%3Dbwckschd.p_disp_dyn_sched%26p_term%3D201010"
url1="https://spectrumssb2.memphis.edu/pls/PROD/bwckgens.p_proc_term_date"
req = Request(url1, query, headers)
test1=0
test=0
while test==0:
print "aaaaattttt \n"
try:
res = urlopen(req)
#req = Request(url1, query, headers)
print "aaaappppp \n"
#urllib2.URLError, (e)
#print e
except urllib2.HTTPError, e:
print "ffff1111 "+str(e.code)+"\n"
if e.code:
test1=1
print "error ..sleep \n"
time.sleep(1)
else:
test1=0
except urllib2.URLError, e:
print e.reason
#print "ffff3333 "+e.code+"\n"
if e.reason:
test1=1
print "error ..sleep \n"
time.sleep(1)
else:
test1=0
#print "ddd "+e.code +"\n"
#print e
if test1==0:
test=1
print "test1 = "+str(test1)+"\n"
#res = urlopen(req)
print "gggg 000000000000\n"
s = res.read()
。
任何想法/意見,將不勝感激..
感謝
這只是錯誤的,「POST數據不需要被urlencoded,因爲它被放置在HTTP請求的主體。」發佈的表單數據的內容類型是「application/x-www-form-urlencoded」。 – 2009-12-20 01:03:57
@Jonathan - 讀起來很清楚,呃?謝謝,我編輯了這個帖子來澄清urlencoding,我當然想歪了。 – 2009-12-20 01:59:21
這就是bettah! Downvote取消。 :) – 2009-12-20 03:10:32