如何查看/调试手机浏览器发送的非标准请求头?

9
有许多网站可以显示并让您查看标准请求头。但我找不到任何一个网站可以通过触发基于WebView的Android应用程序发送某些字段来实际显示非标准请求头。更具体地说,我想知道我的Android手机在X-Requested-With字段中发送了什么。注意:我不是在寻找Firefox插件,因为我的目标不是看另一端如何响应合成请求。我要找的是一种了解其他方(网站)从我的特定Android设备看到的方式。

2
请尝试在您的Webview中打开此链接:http://shush.mobi/request.php - Sherif elKhatib
4个回答

4

如果您没有找到能够满足您需求的网站,不用担心,您可以轻松地编写一个PHP脚本来完成它:

<?php
$headers = getallheaders();

foreach ($headers as $name => $value) {
    echo $name . '=' . $value . '<br/>';
}
?>

您可以轻松地将此上传到您的PHP服务器之一中。 如果您没有一个,您可以使用XAMPP来设置一个。


4
我很确定我们可以找到一个网站,像你想要的那样显示所有的标题。我会尽力帮助你寻找。
经过大量搜索,我偶然发现了这个网站:

http://www.ericgiguere.com/tools/http-header-viewer.html

在我的iPad上,它显示了一些额外的非标头,所以我有一个好感觉,这就是你要找的东西。从你的应用程序访问此页面,它将显示标题。
编辑:也尝试这个,我很难相信他们会伪造请求的原始转储:

http://request.urih.com


3
除了使用jsconsole这样的工具(请见下面的引用和网址)来检查您手机上的浏览器正在做什么,您还有其他几个选项。
根据您在发送这些请求的站点或服务器上的控制级别,您可能能够打开您服务器的日志并检查通过的请求类型。
如果您没有该控制权,并且您的手机在局域网上(与您的计算机连接到同一个Wifi网络),则可以考虑使用Wireshark来检查数据包;这更加困难,但是有助于理解您的网络中发生了什么。您可以使用过滤功能将tcp数据包转储本地化为只显示从您的手机IP地址发出的那些数据包。如果有很多噪音,您可以将过滤器缩小以包括那些入站到您感兴趣的目标站点的数据包。
不过,最可能的是,jsconsole就是您要找的东西。祝您好运!

jsconsole.com是一个简单的JavaScript命令行工具。然而,它还提供了桥接到其他浏览器窗口以远程控制和调试该窗口的能力-无论是在另一个浏览器还是完全另一个设备上。

http://jsconsole.com/remote-debugging.html


感谢您作为第一位提供帮助的人,我很抱歉 jsconsole 并不是我正在寻找的:它似乎主要用于 console.log 消息(顺便提一句,LogCat 已经显示了这些信息)。我正在寻找一个更加“积极主动”的网站,即以一种触发我的基于 WebView 的应用程序发送 X-Requested-With 的方式与其通信,然后网站本身将显示接收到的值。类似于这个 HTTP Header Viewer,但更加普遍。 jsconsole 能用于这种情况吗? - stumpped
没问题,很抱歉你还卡在这里。我不认为我完全理解你想做什么,但是如果你只需要一个URL来告诉你有哪些头部信息进来了,我已经使用Rack制作了一个URL来展示给你,同时附上了我输入任意头部并在接收端查看的屏幕截图。截图:http://cl.ly/image/09193v1f393c 代码:https://gist.github.com/keyvanfatehi/6149360 - keyvan

2

正如 Keyvan 提到的一样,您可以通过以下几种方式实现:

  • 分析数据包,您可以使用 Wireshark,如果您不仅在调试 HTTP 或您无法完全控制请求/响应,则这是最好的选择。
  • 转储您的请求/响应,您可以使用控制台将日志转储出来,并在 logcat 或服务器端读取响应以转储您的请求。
  • 使用中间件如代理
  • 其他我还不知道的技术。

我经常使用代理,因为它很容易使用,我使用 Charles(没有找到更好的替代品),但有一些免费的替代品,如Andiparos

http://i.imgur.com/HCjIdav.png

并且这里是使用 jQuery 生成X-Hello 的示例

您可以在 Wi-Fi 设置中设置它(使用 Charles 您将必须接受第一个连接。)

http://i.stack.imgur.com/uK5r6.png


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