2011-12-19 27 views
5

我试图隔离Python的httplib2 HTTP客户端或API中存在的错误。 (首先猜测是API)。使用httplib2将数据POST到RESTful API时,我得到了401响应状态(未授权)将数据保存到API。如何检查Python HTTP客户端的网络通信?

我想检查HTTP请求和对客户端的响应,即从网络上接收和接收的字符串。 httplib2代码似乎过于容易捕获其中的值,并可能错过该错误。

查看与客户端的网络通信似乎更快。是否有一些工具可用于监视客户端与本地网络套接字的通信?

+0

[Wireshark](http://www.wireshark.org/) – JBernardo 2011-12-19 21:35:42

+0

是否改变['httplib2.debuglevel'](http://bitworking.org/projects/httplib2/doc/html/libhttplib2.html#httplib2 .debuglevel)不会产生任何有用的东西? – 2011-12-19 21:37:13

+0

没看过那个。 – chernevik 2011-12-19 21:42:09

回答

4

我使用http://www.charlesproxy.com为我所有的网络调试。

+1

花了一点时间来弄清楚使用情况,但这做了我一直在寻找的东西。像我这样的Noob:使用curl/python捕获流量需要在Charles内部为目标主机启用SSL代理(对于不同的客户端可能采用不同的方式),并通过Charles提供的本地主机代理路由curl/python请求。现在似乎默认为8888端口,而不是文档中提到的8080端口。 – chernevik 2012-01-02 22:28:35

+0

如何通过Charles代理路由python请求而不更改所用库的源代码? – Anentropic 2012-12-06 13:52:04

+0

我的不好......你必须在Charles SSL配置中专门添加你想要代理的域名,以捕获https请求,然后透明地为python工作 – Anentropic 2012-12-06 13:56:12

1

http://www.wireshark.org/使您也可以监视本地套接字。 即使在使用trick whit添加路由的窗口上,我也能够监控本地环回。

http://wiki.wireshark.org/CaptureSetup/Loopback检查其他替代

或者你也可以只写在客户端监听一个端口上,并且将数据发送到服务器的其他端口上,反之亦然,并打印出所有数据的原始套接字服务器。它不应该采取超过十几行代码

+0

伟大的工具,但找不到通过SSL看到客户端/服务器对话的路径 – chernevik 2012-01-02 22:41:47

相关问题