在认证会话中使用twill/mechanize获取application/json文档

2 投票
2 回答
735 浏览
提问于 2025-04-16 04:36

我需要获取一个MIME类型为“application/json”的文档。我正在使用twill登录一个网站,当我尝试使用go命令访问指向这个JSON文档的URL并用show命令显示它时,我收到了这个消息:

'The HTTP header field "Accept" with value "text/html; */*" could not be parsed.'

我尝试把“Accept”字段改成“application/json”,但还是不行。

谢谢!!

2 个回答

0

看起来你有一个这样的内容:Accept: text/html; */*,我觉得这在语法上是有问题的。根据w3.org的说法,正确的语法应该是:

    <field>  =    Accept: <entry> *[ , <entry> ]
    <entry>  =    <content type> *[ ; <param> ]
    <param>  =    <attr> = <float>
    <attr>   =    q / mxs / mxb
    <float>  =    <ANSI-C floating point text represntation>

所以,*/*因为它是在分号后面,而不是逗号后面,应该是一个<param>,而不是像<attr> = <float>这样的形式。你是不是想在分号后面加一个q=something,,但忘记写了?如果不是的话,text/html, */*也就是用逗号而不是分号,似乎才是正确的语法。

0

这并不是我想要的答案,不过zope.testbrowser可以满足我的需求。

这个工具的使用界面比twill稍微复杂一点,但其实也没复杂多少。

我还是在寻找twill的解决方案!

撰写回答