将OAuth请求代理到Twitter API

12

我一直在为一款iPhone测试应用程序玩弄twitter API,但是我错过了像Charles(http://www.charlesproxy.com/)这样的软件代理请求到twitter API的能力。尽管它有一个SSL代理功能,但twitter似乎不喜欢中间有一个不同的证书签署请求。

有没有办法做到这一点?能够查看请求和Charles格式化JSON响应的方式将非常有用...


有趣。希望你能得到答案。 - Prof. Falken
我还在等待这个回复。 - Oscar Godson
我之前使用过Charles代理与Twitter API配合。您能否更详细地解释一下您是如何通过Charles进行连接以及遇到了什么样的错误? - abraham
所有的 Twitter 客户端基本上都使用 HTTPS 连接。要代理它们,您必须启用 SSL 代理功能,打开后,所有的 Twitter 调用都会因为证书错误而失败(它会将其检测为中间人攻击...)。 - Javier Soto
三年多过去了,我想我刚刚遇到了类似的问题(https://dev59.com/f4fca4cB1Zd3GeqPhE0p)。最终有人找到解决方案了吗? - jenzz
1个回答

2
Twitter无法知道是否存在中间人攻击。我没有使用Charles,但我用过Fiddler2。试试那个。

http://www.charlesproxy.com/documentation/proxying/ssl-proxying/

http://www.fiddler2.com/fiddler/help/httpsdecryption.asp

HTTPS的解密是由代理服务器制作自己的证书,并将其提供给浏览器。浏览器会注意到它连接了一个错误的证书并发出警告,但服务器(Twitter)只会将代理视为另一个浏览器。代理服务器连接使用Twitter的证书,因此仍然是安全的。
也许这是你的问题:
问:Fiddler能拦截像iPad/iPhone/iPod Touch和Android设备这样的苹果iOS设备的流量吗?答:可以,但这些设备可能与Fiddler生成的默认证书不兼容。
要解决不兼容问题,您可以用一个生成包含标志(例如AKID、SKID)的证书的证书生成器替换Fiddler的默认证书生成器。只需下载并安装新的证书生成器,然后重新启动Fiddler即可。

1
我认为值得注意的是,在恢复常规的互联网浏览之前,应该禁用此功能或杀死Fiddler进程。他们的代理证书将“破坏”其他TLS连接。 - Anthony Mason

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接