我正在尝试使用Python脚本使用Hot Banana的内容管理系统将PDF文件上传到网站。我已成功登录该站点并可以注销,但我似乎无法上传文件。

文件上传是通过POST提交表单数据和PDF文件的大型复杂Web表单的一部分。使用Firefox以及Firebug和Tamper Data扩展我看了一下浏览器在POST中发送的内容以及它的发展方向。我相信我模仿了浏览器在代码中发送的数据,但我仍然遇到了麻烦。

我正在导入cookielib来处理cookie,海报用于编码PDF,urllib和urllib2用于构建请求并将其发送到URL。

注册海报开启者是否有可能破坏cookie处理器的开启者?我这样做完全错了吗?


编辑:调试流程的好方法是什么?目前,我只是将urllib2响应转储到文本文件并检查输出,看它是否与手动上传文件时的输出相匹配。

编辑2:Chris Lively建议我发布我得到的错误。 urllib2的响应不会产生异常,只会返回:

<script>
    if (parent != window) { 
        parent.document.location.reload(); 
    } else { 
        parent.document.location = 'login.cfm'; 
    }
</script>

我会坚持下去。

有帮助吗?

解决方案

“调试[网络服务]流程的好方法是什么?”

目前,我只是将urllib2响应转储到文本文件并检查输出,看它是否与我手动上传文件时的结果相符。

正确。这就是所有的一切。

HTTP是一个非常简单的协议 - 您发出请求(在本例中为POST),服务器响应。没有太多其他参与,而且在调试时你可以做的更多。

你还想要什么?认真。您认为这种无状态协议可能存在哪种调试器?

其他提示

WireShark 这样的工具会让你在比firefox更低级别更完整的跟踪插件。

通常情况下,这可能就像没有正确设置内容类型或者不包含内容长度一样简单。

您可能最好不要检测服务器以查看失败的原因,而不是尝试在客户端进行调试。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top