简介 我想很多同学都可能会遇到这样的问题,调用后台提共的静态资源服务api时,用浏览器打开发现却是一堆乱码.需要的是 JSON, 拿到的却是 xml,访问一个mp4的文件,浏览器直接下载.这一切的来源都是它 Content-type. 问题 我在使用 express 作为服务器,并且使用 express.static('public') 作为我的静态资源服务. 我没有配置 Content-Type 的报文头. 我访问服务器上的一个图片,出现乱码. 解决 如果你也是使用nodeJS作为后台服务那么…
调查一个 pdf 打印报错: ExceptionConverter: org.apache.catalina.connector.ClientAbortException: java.net.SocketException: Software caused connection abort: socket write error at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:407)…
requests模拟浏览器请求模块初识  requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/latest/user/install.html#id2 安装好模块后需要先 import requests 引入模块 requests.get()模块函数 功能:发送http请求[有参] 使用方法:requests.get("要请求的url地址") 格式如:http =requests.get("…
一些准备 在开始这个话题之前,我们有必要简单回顾一下 浏览器(webkit)的网页渲染过程(如果想要详细了解这个过程,可以戳我几年前写的一篇文章.): 我们知道,浏览器在渲染过程中,如遇到节点需要依赖其他资源(比如:图片.CSS.JavaScript.video等),浏览器会通过网络去加载它们.这其中大部分的资源是异步加载的,不会阻塞渲染,除了 JavaScript(未被标记为异步的方式). 网页的加载和渲染依赖网络与资源加载,网页本身是一种资源,它所依赖的 js.css.图片.视频等也是资源.…
requests模拟浏览器请求模块初识  一.下载 requests模拟浏览器请求模块属于第三方模块 源码下载地址http://docs.python-requests.org/zh_CN/latest/user/install.html#id2 安装好模块后需要先 import requests 引入模块 二.简单使用  1.先上一串代码 import requests   response  = requests.get("https://www.baidu.com") print…
from selenium import webdriver from selenium.webdriver.common.desired_capabilities import DesiredCapabilities #设置浏览器请求头 dcap = dict(DesiredCapabilities.PHANTOMJS) dcap["phantomjs.page.settings.userAgent"] =( "Mozilla/5.0 (Linux; Android 5.1…
1.服务器(Server)响应,浏览器(Brower)请求: 对于B/S的软件,数据的传递体现在,用户利用浏览器请求,以获得服务器响应.在JavaWeb项目中,大致包含.java文件的数据处理模块,和在浏览器展示的.jsp,.html信息展示模块.这里还要区分前台和后台两个概念,前台并不代表浏览器端,后台并不代表服务器端. 按上图的流程中,我们可以看到我们完成编码工作后,tomcat将会把我们工程中的WebRoot加载到tomcat的webapps下.浏览器请求后,服务器根据.java编码的数据…
这只是一个小Demo,话几十分钟搞出来的. 不废话先上代码. 首先是服务端的 package com.cnryb; import java.io.IOException; import java.io.OutputStream; import java.net.InetSocketAddress; import org.apache.http.HttpStatus; import com.sun.net.httpserver.*; public class HttpSer { /** * @pa…
模拟浏览器请求Python结合html基本格式 用Python模拟一个客户端,结合打开一个HTML页面 创建客户端 #!/usr/bin/env python # -*- coding:utf8 -*- import socket #导入单线程通讯模块 def handle_request(client): buf = client.recv(1024) client.sendall(bytes("HTTP/1.1 201 OK\r\n\r\n","utf8"))…
转json import jsonjson = json.loads(html) 模拟浏览器请求头 import urllib.request req = urllib.request.Request(url, data) req.add_header('User-Agent','Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 S…
转载请注明出处:http://blog.csdn.net/xiaojimanman/article/details/44407297 http://www.llwjy.com/blogdetail/9383e88e4bc7378b8318e15b0ac33559.html 个人博客站已经上线了,网址:www.llwjy.com,欢迎大家吐槽~ -----------------------------------------------------------------------------…
场景 Ubuntu Server 16.04 LTS上怎样安装下载安装Nginx并启动: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102828075 Nginx的配置文件位置以及组成部分结构讲解: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/102829618 Linux-Ubuntu Server 16.04安装JDK以及配置JDK环境变量: ht…
一.类型转换器 1.在动作类action中,声明和表单中name属性的值同名的属性,提供get和set方法,struts2就可以通过反射机制,从页面中获取对应的内容 package com.kdyzm.convert; import com.opensymphony.xwork2.ActionSupport; public class TypeConvertAction extends ActionSupport{ private static final long serialVersionU…
今天同事反映他的apk文件在自己的老项目中下载有问题:下载apk文件浏览器会直接打开并显示乱码,在别的项目中就没有问题. 后分析response的content-type发现,老项目的类型是text/html,正常项目的类型是:application/vnd.android.package-archive, 于是明白了其中的原因,老项目用的是tomcat7以下的版本,在conf/web.xml中还没有加入apk的媒体类型,从tomcat7开始才引入了该类型,所以2种方案,一个是升级tomcat到…
Springmvc Get请求Tomcat.WebLogic中文乱码问题 学习了:http://www.cnblogs.com/qingdaofu/p/5633225.html http://www.cnblogs.com/liukemng/p/4178882.html 等内容,适用转码方式进行了乱码问题解决: 代码: cz = new String(cz.getBytes("ISO-8859-1"), "utf8"); 但是,WebLogic下面不需要进行转码就可…
js 整数限制 浏览器文件大小限制 https://w3c.github.io/FileAPI/#dom-blob-arraybuffer https://developer.mozilla.org/en-US/docs/Web/API/Blob <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>upload</…
读书笔记,原文链接:http://www.cnblogs.com/loveis715/p/4669091.html,感谢作者! 一.需求描述 当用户在某个电子商务网站购物时,他首先查看要购买的商品分类,然后选择某个商品,查询其明细信息. 用户查询商品分类列表,系统显示商品分类列表(食品.服装.电器.文具.玩具) 用户选择分类明细,查询分类(佳宝.黑牛) 用户选择查看分类下的商品列表,系统显示分类下的商品列表(酸奶,纯牛奶) 二.业务流程 1.商品分类列表请求(食品.电器.文具.玩具) 1.1.请…
前言 在进行某些爬虫任务的时候,我们经常会遇到仅用Http协议难以攻破的情况,比如协议中带有加密参数,破解需要花费大量时间,那这时候就会用Selenium去模拟浏览器进行页面上的元素抓取 大多数情况下我们用Selenium只是爬取一下页面上可见的元素信息或者做一些模拟人工的操作,但页面可见元素的数据字段毕竟有限,有许多有用的字段隐藏在接口响应中的,但是要如何拿到接口响应内容呢? 在网上搜索Selenium如何获取Chrome中Network数据包响应结果,大多数的文章都是Python或者Java…
无法打开IE浏览器 使用web(http)协议录制时,无法打开IE浏览器,且生成的日志信息为 ****** Start Log Message ****** Web Recorder version : 11.0.0.8859 Recording Mode: HTML-based script containing explicit URLs only Not using correlation Not recording headers Not excluding content types…
X5内核  请求超时后会自动阻止请求返回并由代理服务器将原参数重新发送请求到服务层代码.但由于第一次请求已经请求到服务器,会导致出现重复下单.支付等重大问题. 该问题由于腾讯x5浏览器会自动阻止第一次请求返回到页面,届时将抛出io异常.最开始打算通过拦截器来进行拦截第二次请求,但这样将使页面无法接受到返回信息报错. 初步解决思路 当第二次请求访问进服务层时暂停该线程,并定时循环查询第一次请求是否返回成功,将第一次返回成功的结果赋值给第二次. 由于我们系统中所有页面请求都会过一个通用control…
python下读取一个页面的数据可以通过urllib2轻松实现请求 import urllib2 print urllib2.urlopen('http://www.baidu.com').read() 涉及到页面的POST请求操作的话需要提供头信息,提交的post数据和请求页面. 其中的post数据需要urllib.encode()一下,其实就是将字典转换成“data1=value1&data2=value2”的格式. import urllib import urllib2 HEADER =…
最近安装fiddler后,按照通用设置后依然无法抓取到chrome的请求,经检查,我本地的chrome安装了代理管理的插件Switchy,无论选择直接连接还是选择使用代理连接,插件都会屏蔽fiddler的设置. 因为fiddler本身会自动给浏览器设置一个代理127.0.0.1 端口8888,并且记忆浏览器的代理设置,所有的请求先走fiddler代理,再走浏览器代理.如果使用插件,可能会直接屏蔽了fiddler的代理,因此无法监听到请求了. 解决方法:将Switchy插件禁用掉,就可以正常抓到c…
方式一 在SpringMVC的配置文件中添加如下语句 <mvc:default-servlet-handler/> 说明:当SpringMVC前端控制器对静态资源进行拦截后,在通过处理器映射器找不到相关处理器的情况下该请求会被tomcat中web.xml中默认配置的Servlet拦截. 方式二 SpringMVC的配置文件中添加指定的目录,使这些路径不经过前端控制器 <mvc:resources mapping="/js/**" location="/js/…
测试同学今天又双叒反馈了一个Bug 继上次解决了重复请求的问题之后,本来就以为可以万事大吉了,没想到我还是太年轻了,测试同学说,不行啊,老哥,你这个我点击了一次创建居然创建出来两条数据!!并且查看日志的时候,确实是发了两次网络请求!!! 我:????? 排查 1.先看看是不是JS的问题,我们看一下network跟踪一下,没有啊,这只发送了一个请求,挠头,继续, 2.好的,我去我的工位上复现一下,在JS处打断点,没有啊,ajax这里只进来一次,好吧,继续查, 3.好的,把host地址改向测试机,请…
做项目的时候,遇到一个小的问题.一个location.href="请求的url"在其它浏览器上是可以正常请求的.但是在ie浏览器上确出现奇怪的http请求400错误,我们先来对于http400状态的描述:当用户在打开网页时,返回给用户界面带有400提示符的页面.其含义是你访问的页面域名不存在或者请求错误,自己的本地,肯定没问题.那就是请求错误了.几经尝试发现是参数带中文的会出现此种情况,没带中文的没有问题.所以在网上找了一些资料,有很多方法.例如把get请求换成post请求,在web.…
web测试过程中我们经常需要抓包,通常我们使用fiddler或者Charles.但是jmeter也可以抓包,而且非常好用,闲话不多说,下面进入正题.下面用一个例子进行说明 需求:bing首页搜索南京测试汪 步骤: 1.选择测试计划,添加线程组 2.选择工作台,添加HTTP代理服务器 3.修改HTTP代理服务器,端口改为8889,目标控制器选择线程组 4.打开Firefox,设置代理 5.启动HTTP代理服务器 6.浏览器地址栏输入cn.bing.com,搜索框输入南京测试汪,点击搜索 7.查看抓…
var express = require('express'); const proxy = require('http-proxy-middleware'); const app = express();           var options = {         target: 'http://192.9.104.247:7894',    //  你服务器端口         changeOrigin: true,     }; var exampleProxy = proxy(…
个人博客 地址:http://www.wenhaofan.com/article/20181125220342 在开发AutuBlog项目时需要做后台的登录记录,想起浏览器的User-Agent,于是尝试从浏览器的请求头中获取一些有用的信息. 通过总结大量请求头数据写出以下正则 ^Mozilla/\d\.\d\s+\(+.+?\) 该正则含义为 以Mozilla/开头+浏览器版本格式为数字.数字+空格+(+任意字符串+匹配第一个) 测试数据 Mozilla/5.0 (Macintosh; Int…
ServletContext对象 web容器在启动的时候,它会为每个web程序都创建一个对应的ServletContext对象,它代表了当前的 web应用: 作用 1.共享数据  (一般用session) //在servlet1 存 ServletContext context = this.getServletContext(); String username = "Kant"; //数据 context.setAttribute("username",user…
etag:简单的说就是服务器收到客户端的请求后,根据返回的内容计算出来一个etag值,返回给客户端,当客户端下次再请求相同路径的时候会带上之前的etag值,服务器端会根据这次请求应该返回的内容计算出新的etag值,如果内容没有变化的话,etag值应该也不会改变,如果etag值没有改变,那么直接返回304,本次请求本应该返回的内容就无需再次返回给客户端了,客户端收到304则直接使用本地的缓存数据.由于这次返回的时候并没有返回实际的数据,所以节省了大量的网络带宽,但是仅对GET方式有效. cache…