Fiddler 调试出现的 ReadResponse() failed 问题_sunnysab的博客-程序员秘密

技术标签: 调试  Fiddler  HTTP  

        好久没写博客了,想重新开始、继续积累。

        最近在使用 Fiddler 分析一个应用,出现了如下错误:

[Fiddler] ReadResponse() failed: The server did not return a complete response for this request.

        对这块不是特别熟,一时半会没有头绪。按照该错误说明来讲,应该是服务器没有发送数据。这原因可就多了去了,一般是服务器认为不应该进行响应操作。在网上找了些资料,有说权限设置不正确,但在我这不应存在此情况,我只有在挂上 Fiddler 的时候才出现应用无法和服务器通讯的情况,那么就此断定是 Fiddler 的问题。

        找了一会 Fiddler 的设置,仍然无法解决,突然看见应用发的包:

POST  HTTP/1.1
Content-Length: 38
Content-Type: application/x-www-form-urlencoded
Host: (主机名)
Connection: Keep-Alive
User-Agent: android-async-http/1.4.4 (http://loopj.com/android-async-http)
Accept-Encoding: gzip

(数据)

        发现在 Header 的首行没有地址,这个应用写的也真是奇葩…… 不知道是否符合 HTTP 规范。找到 FiddlerScript,摸索着在 OnBeforeRequest 函数中添加如下代码:

        // 防止某些服务器出错
        if (oSession.url == "http://(主机)")
        {
            oSession.url = "http://(主机)/";
        }

        兴高采烈地去测试,依然返回 504 Fiddler 相关的错误,以及 400 BadRequest. 由于不知道 Session::url 的格式,可能问题出在这。

        先注释掉,然后换了一种方法,在 AutoResponder 里添加 Rule, 进行重定向,解决了问题。

 

后记

        在 Fiddler Script 例子文档中,找到了如下用法:

        if (oSession.url=="www.example.com/live.js") {
              oSession.url = "dev.example.com/workinprogress.js";
        }

        原来是不需要加 "http://" 的……

        查询 RFC2616,5.1.2 节,有如下描述:

5.1.2 Request-URI
Request-URI    = "*" | absoluteURI | abs_path | authority

Note that the absolute path cannot be empty; if none is present in the original URI, it MUST be given as "/" (the server root).

        根据这段描述, 该应用发出的请求并不符合规范。

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/sunnysab/article/details/81297767

智能推荐

Ubuntu20.04衍生版中基于Wine-6.0.2稳定版安装微信,去除阴影边框,去除状态图标叠加,可实现新信息提示闪烁_ericden的博客-程序员秘密_wine微信透明窗口

本文适用于Ubuntu 20.04 LTS的衍生版本 Linux Mint 20.2 Xfce、Linux Mint 20.2 Cinnamon、Ukylin Linux 20.04,并测试有效,其他版本未进行测试本人之前一篇文章已经描述了如何在Ubuntu 20.04 LTS的衍生版中安装QQ,使用的是原生的稳定版Wine-6.0.2,通过打补丁的方式替换掉原有的winex11.drv.so解决Ukylin-wine QQ状态图标叠加显示故障和来信息不进行闪烁提示的问题,而且运行稳定;但是我用同样的加

利用PHP实现钉钉webhook通知_WXiangQian王先森的博客-程序员秘密_php webhook

利用PHP实现钉钉webhook通知,方便随时获取项目的动态如果你嫌麻烦不想写这么多代码的话你可以直接引入包:https://github.com/WXiangQian/laravel-DingTalk以上包满足所有需求,无需再看下文。如不想引入dingtalk包的话那就如下操作吧首先,要先添加composer包具体添加composer包的教程查看:https://github...

解决 vue-cli 打包后图片路径获取不到的问题_haogemr的博客-程序员秘密

摘抄博客:vue-cli打包后图片路径取不到的问题1. 第一步在config / index.js 文件中把assetsPublicPath 修改为 ./2. 第二步在 build / webpack.prod.conf.js 文件中,在output里增加 publicPath: './'3. 第三步虽然解决了资源路径的引用问题,但是资源里面的背景图片还是不显示, background: url("../../assets/images/logo-index.png") no-repeat;

AttributeError: module ‘tensorflow‘ has no attribute ‘placeholder‘_疯狂java杰尼龟的博客-程序员秘密_attributeerror: module 'tensorflow' has no attribu

AttributeError: module 'tensorflow' has no attribute 'placeholder'问题原因解决方法参考问题原因使用了与当前tensorflow版本不对应的方法解决方法1.Tensorflow 团队提供的解决方案import tensorflow.compat.v1 as tftf.disable_v2_behavior() 2.重新下载对应2.0以下版本的tensorflow3.调整为新的使用方法,这里以基于mnist的自编码器重构例子来说

poj 2488 深搜+回溯_三易的博客的博客-程序员秘密

package com.liang.poj;import java.util.Scanner;public class Test2488 { static boolean b = true; public static void main(String[] args) { Scanner scan = new Scanner(System.in); in

交互:更好的鼠标控制_shaokao60的博客-程序员秘密

转自http://blog.csdn.net/tiewen/article/details/6915899 11. 交互:更好的鼠标控制     在《9. 交互:这次我们用鼠标》中,键盘和鼠标都只控制了立方体绕z轴和x轴的旋转。在从正面观察的情况下,总是无法同时显示立方体的三个面。本章,我们介绍用鼠标拖动实现立方体的3D旋转。    一个旋转对应一个方向向量。如果把所有

随便推点

ImageView宽度填满屏幕,高度自适应_easion_zms的博客-程序员秘密_imageview高度自适应

在CSS中轻松设置width=100%就可以使得图片宽度充满屏幕,高度自适应,那么在Android里面怎样才能实现这种效果呢?首先试一下默认的ImageView的效果,布局文件如下activity_main_2.xml:<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" and

vue 构建单页应用_使用Go和Vue构建单页应用_dingshi7798的博客-程序员秘密

vue 构建单页应用 本文最初发布在Okta开发人员博客上 。 感谢您支持使SitePoint成为可能的合作伙伴。 单页面应用程序(SPA)通过提供丰富的UI交互,快速的反馈以及无需下载和安装传统应用程序的麻烦,改善了用户体验。 浏览器现在是操作系统,网站是应用程序。 尽管SPA并非总能解决问题,但对于依赖快速用户交互的应用程序,它们变得越来越普遍。 对于最终用户而言,精心设计的SPA就像...

getAttrbute()方法_凉川望远的博客-程序员秘密

getAttrbute()方法通过元素节点的属性名称获取属性值elementNode.getAttribute(name)说明:1.elementNode:使用getElementById(),getElementsByTagName()等方法,获取到的元素节点2.name:要想查询的元素节点的属性名字例子:使用getAttribute()方法,获取LI标签的title值。

【TGAM-springboot入门练手项目】采用jwt实现token认证(一)_adventure.Li的博客-程序员秘密

TGAM-springboot入门练手项目此项目是个人参与工作室的一个项目,分为硬件、IOS、WEB、后端、数据分析等几大部分,具有实际商用价值。而我虽然只是在其中打杂,写的后端也不够好,但是我会努力地将这系列文章写清楚、详细,若有什么疑问,欢迎QQ:674619459和我交流。另外你的点赞、收藏便是对我最大的鼓励!!GITHUB:https://github.com/lyf712/TGAM-SpringBoot-Vue-Demo&gt;简单介绍:https://blog.csdn.net/qq_4

基于高通410c开发板,开发android端家庭控制中心APP(4)_cong力夫的博客-程序员秘密_410c开发板

实现BottomNavigationBar接口,在onTabSelected方法中实现了Fragment切换的逻辑。电动窗帘模块i. UI创建com.thundersoft.flagmingo.curtain包,创建CurtainUIFragment.java文件继承了Fragment并实现了View.OnClickListener接口,文件主要负责显示curtain_fragment.xml中U...

bzoj 5217: [Lydsy2017省队十连测]航海舰队 二维转一维FFT__beginend的博客-程序员秘密

题意Byteasar 组建了一支舰队!他们现在正在海洋上航行着。海洋可以抽象成一张n×m 的网格图,其中有些位置是“.”,表示这一格是海水,可以通过;有些位置是“#”,表示这一格是礁石,不可以通过;有些位置是“o”,表示这一格目前有一艘舰,且舰离开这一格之后,这一格将变为“.”。这些“o” 表示Byteasar 的舰队,他们每天可以往上下左右中的一个方向移动一格,但不能有任何一艘舰驶出地图。特...

推荐文章

热门文章

相关标签