为什么在同一HTTP GET请求的python和ruby mechanize中有不同的响应?

时间:2016-02-26 07:42:54

标签: python get mechanize-ruby

为什么在同一个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 - 未处理的响应

这是预期的吗?

0 个答案:

没有答案