python - 为什么aiohttp的response里的cookies和程序出错时库里自动打印的cookies不一样?
迷茫
迷茫 2017-04-18 10:25:00
0
1
928

以下是获取cookies的一段代码,运行时是没有问题的。

    r = await session.post(url, data=postData)
    if r.status == 200:
        print ("Get Cookie Success!( Account:%s )" % account)
        cookie = r.cookies
        print (cookie)
        cookies.append(cookie)
    else:
        pass
    # 释放连接
    await r.release()

下图上边的红色框是上边代码的输出,如果程序中有bug,不管有什么bug时都会自动打印图中下边红色框的信息,上下两个红框中的cookies为什么不一样?post的url只有一个且返回的都是200。网上找了很久也找不到答案,望指教,谢谢!

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

membalas semua(1)
刘奇

Selepas membaca kod sumber dan mencari masalah langkah demi langkah, masalah ditemui Output kotak merah pertama ialah ClientResponse.cookies, dan kotak merah kedua ialah output dalam ClientResponse.__del__ selepas beberapa panggilan masuk ClientResponse.__repr__. apabila ralat berlaku. ClientResponse.headers dan
diekstrak daripada cookies, dan kaedah yang digunakan ialah headers Akhirnya, didapati kaedah http.cookies.SimpleCookie.load dalam BaseCookie mempunyai masalah apabila menggunakan padanan ungkapan biasa. Ungkapan biasa adalah seperti berikut: __parse_string

_CookiePattern = re.compile(r"""
    \s*                            # Optional whitespace at start of cookie
    (?P<key>                       # Start of group 'key'
    [""" + _LegalKeyChars + r"""]+?   # Any word of at least one letter
    )                              # End of group 'key'
    (                              # Optional group: there may not be a value.
    \s*=\s*                          # Equal Sign
    (?P<val>                         # Start of group 'val'
    "(?:[^\"]|\.)*"                  # Any doublequoted string
    |                                  # or
    \w{3},\s[\w\d\s-]{9,11}\s[\d:]{8}\sGMT  # Special case for "expires" attr
    |                                  # or
    [""" + _LegalValueChars + r"""]*      # Any word or empty string
    )                                # End of group 'val'
    )?                             # End of optional value group
    \s*                            # Any number of spaces.
    (\s+|;|$)                      # Ending either at space, semicolon, or EOS.
    """, re.ASCII | re.VERBOSE)    # re.ASCII may be removed if safe.
Apabila dipadankan dengan

, expires=Saturday, 06-Mar-2027 02:32:46 GMT; yang diperoleh buat kali pertama ialah key, dan expires ialah val Saturday, yang diperoleh untuk kali kedua ialah key, dan 06-Mar-2027 ialah val adalah None dalam fungsi Kerana return tidak boleh ditafsirkan dengan betul, maklumat kuki expires dan cookies adalah berbeza. headers

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan