为什么在同一个HTTP GET请求的python和ruby mechanize中有不同的响应?
的Python:
def send(cls, url, values = None, method = 'GET', header={}):
print(url)
c = cls()
data = None
context = ssl._create_unverified_context()
if values is not None:
# data = urllib.parse.urlencode(values)
# data = data.encode('utf-8') # data should be bytes
data = json.dumps(values)
data = data.encode('utf-8')
if data is None:
c.request = urllib.request.Request(url)
else:
c.request = urllib.request.Request(url, data)
c.request.add_header('Content-Type', 'application/json')
for key, value in header.items():
c.request.add_header(key,value)
c.request.method = method
# print(c.request.get_header('Content-Type'))
try:
c.response = urllib.request.urlopen(c.request, context=context)
except urllib.error.HTTPError as e:
c.response = e
# print(e.hdrs)
return c
resp = HTTPSender.send("https://10.5.110.143/__api__/logon/704383e332d46036369a510e2673fe94?method=144", method="GET")
print(resp.body)
输出:
{ “message”:“请求的URL不允许使用该方法。” }
Ruby机械化:
@agent=Mechanize.new
$resp = .get("https://10.5.110.143/__api__/logon/704383e332d46036369a510e2673fe94?method=144")
puts $resp.content
输出:
405 => {:: 3}}的Net :: HTTPMethodNotAllowed 34ea1c8a5bfe64d7cf08797a?method = 144 - 未处理的响应
这是预期的吗?