精华内容
下载资源
问答
  • java服务器post请求时首部字段content-length的计算方法

    当java向服务器post请求时,首部中有一个Content-length字段,即请求主体中的字节数。首部在主体的前面。不过,要写入首部,需要知道主体的长度,而在写首部的时候可能还不知道主体的长度。正常情况下,对于这个两难的问题。
    如图所示
    这里写图片描述
    Java的解决办法是:对于从HttpURLConnection获取的OutputStream ,将写入此OutputStream的所有内容缓存,直到流关闭。此时它就会知道主体中有多少字节,所以有足够的信息来写入Content-length首部。

    这种模式对于响应典型Web表单的短请求很合适。不过,对于非常长的表单或一些SOAP消息,响应时负担会很大。用HTTP PUT发送中等到大型文挡时会很浪费,也很慢。如果Java 通过网络发送第一字节之前,不需要等待写入最后一字节,将会高效得多。

    Java 为这个问题提供了两种解决方案。

    解决方案1:如果你知道数据的大小,例如使用HTTP PUT上传一个已知大小的文件,可以将数据的大小告诉HttpURLConnection对象。

    解决方案2:如果预先不知道数据大小,可以使用分块传输编码方式。在分块传输编码方式中,请求主体以多个部分发送,每个部分都有自己单独的内容长度。要启用分块传输编码方式,只要在连接URL之前将分块大小传入setChunkedStreamingMode()方法(需要服务器支持分块传输编码方式,所以,,除非确实需要,否则不要使用分块传输编码方式)。

    如果恰好预先知道请求数据的大小,可以将这个信息提供给HttpURLConnection对象,从而优化连接。如果这样做,Java会立即通过网络将数据以流方式发送。否则,它必须缓存你写入的所有数据来确定内容长度,而且只有在你关闭流之后才能通过网络发送数据。如果知道数据的具体大小,可以将这个数传递给setFixedlengthStreamingMode()方法。由于这个数可能实际大于int所能存储的最大整数(大约21亿个字节,大约200M),所以在Java 7及以后版本中可以使用一个long。

    注意两个问题:

    1. Java会在HTTP首部的Content-length字段中使用这个数。不过,如果接下来试图写入的数据多于或少于给出的这个字节数, Java会抛出一个IOException异常。
    2. 流模式确实会妨碍身份认证和重定向。如果给定的URL要求认证或重定向,就会抛出一个HttpRetryException异常
    展开全文
  • 文档, POST方法服务器发送需要处理的数据, OPTIONS方法用于确定Web 服务器的一般功能, 或者Web服务器处理特定资源的能力。 HTTP协议下常用的7种请求方法 方法 描述 是否包含主体 GET 从服务器获取一...

    HTTP规范中定义了一组常用的请求方法。比如, GET方法负责从服务器获取一个
    文档, POST方法会向服务器发送需要处理的数据, OPTIONS方法用于确定Web
    服务器的一般功能, 或者Web服务器处理特定资源的能力。

    HTTP协议下常用的7种请求方法

    方法描述是否包含主体
    GET从服务器获取一份文档
    HEAD只从服务器获取文档的首部
    POST向服务器发送带要处理的数据
    PUT将请求的主体部分存储在服务器上
    TRACE对可能经过代理服务器传送到服务器上去的报文进行追踪
    OPTIONS决定可以在胀务器上执行哪些方法
    DELETE从服务器上删除一份文档
    具体描述:

    3.3.2 GET
    GET是最常用的方法。通常用千请求服务器发送某个资源。HTIP/1.1要求服务器
    实现此方法。图3-7显示了一个例子, 在这个例子中, 客户端用GET方法发起了一
    巨习次HTIP请求。
    在这里插入图片描述

    3.3.3 HEAD
    HEAD方法与GET方法的行为很类似, 但服务器在响应中只返回首部。不会返回实
    体的主体部分。这就允许客户端在未获取实际资源的情况下, 对资源的首部进行检
    查。使用HEAD, 可以:
    • 在不获取资源的情况下了解资源的情况(比如, 判断其类型) 1
    • 通过查看响应中的状态码, 看看某个对象是否存在,
    • 通过查涽首部, 测试资源是否被修改了。
    服务器开发者必须确保返回的首部与GET请求所返回的首部完全相同。遵循
    HTTP/1.1规范, 就必须实现HEAD方法。图3-8显示了实际的HEAD方法。
    在这里插入图片描述

    3.3.4 PUT
    与GET从服务器读取文档相反,PUT方法会向服务器写入文档。有些发布系统允
    许用户创建Web页面, 并用PUT直接将其安装到Web服务器上去。
    在这里插入图片描述
    PUT方法的语义就是让服务器用请求的主体部分来创建一个由所请求的URL命名
    的新文档, 或者, 如果那个URL已经存在的话, 就用这个主体来替代它。
    因为PUT允许用户对内容进行修改, 所以很多Web服务器都要求在执行PUT之
    前, 用密码登录。在第12章中可以读到更多有关密码认证的内容。

    3.3.5 POST
    POST方法起初是用来向服务器输入数据的3。实际上, 通常会用它来支持HTML
    的表单。表单中填好的数据通常会被送给服务器, 然后由服务器将其发送到它要去
    的地方(比如, 送到一个服务器网关程序中, 然后由这个程序对其进行处理)。图
    3-10显示了一个用POST方法发起HTTP请求一向服务器发送表单数据一的客
    户端。
    在这里插入图片描述

    3.3.6 TRACE
    客户端发起一个请求时, 这个请求可能要穿过防火墙、代理、网关或其他一些应用
    程序。每个中间节点都可能会修改原始的HTTP 请求。TRACE方法允许客户端在
    最终将请求发送给服务器时, 看看它变成了什么样子。
    TRACE请求会在目的服务器端发起一个“环回” 诊断。行程最后一站的服务器会
    弹回一条TRACE响应, 井在响应主体中携带它收到的原始请求报文。这样客户端
    巨习就可以查看在所有中间HTTP应用程序组成的请求I响应链上, 原始报文是否, 以
    及如何被毁坏或修改过。
    在这里插入图片描述
    TRACE方法主要用于诊断,也就是说, 用千验证请求是否如愿穿过了请求I响应
    链。它也是一种很好的工具,可以用来查看代理和其他应用程序对用户请求所产生
    效果。
    尽管TRACE可以很方便地用千诊断, 但它确实也有缺点, 它假定中间应用程序对
    各种不同类型请求( 不同的方法–GET、HEAD、POST等) 的处理是相同的。
    很多HITP应用程序会根据方法的不同做出不同的事情一比如, 代理可能会将
    POST请求直接发送给服务器, 而将GET请求发送给另一个HITP应用程序(比如
    Web缓存)。TRACE并不提供区分这些方法的机制。通常, 中间应用程序会自行决
    巨回定对TRACE请求的处理方式。
    TRACE请求中不能带有实体的主体部分。TRACE响应的实体主体部分包含了响应
    服务器收到的请求的精确副本。

    3.3. 7 OPTIONS
    OPTIONS方法诮求Web服务器告知其支持的各种功能。可以询问服务器通常支持
    哪些方法, 或者对某些特殊资源支持哪些方法。(有些服务器可能只支持对一些特殊
    类型的对象使用特定的操作)。
    这为客户端应用程序提供了一种手段, 使其不用实际访问那些资源就能判定访问各
    种资源的最优方式。阳3-12显示了一个使用OPTIONS方法的请求。
    在这里插入图片描述

    3.3.8 DELETE
    顾名思义,DELETE方法所做的事情就是请服务器删除请求URL所指定的资源。
    但是, 客户端应用程序无法保证删除操作一定会被执行。因为HTTP规范允许服务
    器在不通知客户端的情况下撤销请求。阳3-13显示了一个DELETE方法实例。
    在这里插入图片描述

    3.3.9 扩展方法
    HTTP被设计成字段可扩展的,这样新的特性就不会使老的软件失效了。扩展方法
    指的就是没有在HTIP/1.1规范中定义的方法。服务器会为它所管理的资源实现一
    些HTTP服务,这些方法为开发者提供了一种扩展这些HTTP服务能力的手段。表
    3-5列出了一些常见的扩展方法实例。这些方法就是WebDAVHTTP扩展(参见第
    19章)包含的所有方法,这些方法有助千通过HTTP将Web内容发布到Web服务
    器上去。
    表3-5 Web发布扩展方法示例

    方法描述
    LOCK允许用户“锁定“ 资源一一比如, 可以在编辑某个资渊的时候将其锁定,以防别人同时对其进行修改
    MKCOL允许用户创建资源
    COPY便于在服务器上复制资源
    MOVE在服务器上移动资源

    允许用户“锁定“ 资源一一比如, 可以在编辑某个资渊的时候将其锁定,
    以防别人同时对其进行修改
    允许用户创建资源
    便于在服务器上复制资源
    在服务器上移动资源
    并不是所有的扩展方法都是在正式规范中定义的,认识到这一点很重要。如果你定
    义了一个扩展方法,很可能大部分HTTP应用程序都无法理解。同样,你的HTTP
    应用程序也可能会遇到一些其他应用程序在用的,而它并不理解的扩展方法。区9
    在这些情况下,最好对扩展方法宽容一些。如果能够在不破坏端到端行为的情况下
    将带有未知方法的报文传递给下游服务器的话,代理会尝试若传递这些报文的。否
    则,它们会以501 Not Implemented (无法实现)状态码进行响应。最好按惯例”对
    所发送的内容要求严一点,对所接收的内容宽容一些” 来处理扩展方法(以及一般
    的HTTP扩展)。
    HTTP

    展开全文
  • HTTP客户端服务器请求数据

    千次阅读 2016-02-25 12:02:36
    在http模块中,我们可以使用Request方法向服务器(其他网站)请求数据。Request方法的使用方式如下: var req = http.request(opts,callback); 我们注意到在request方法中两个参数,其中opts参数为一个对象或者...

    一、HTTP客户端向其他网站请求数据

    在node.js中,我们可以轻松的向任何网站发送请求并读取该网站的响应数据:

    在http模块中,我们可以使用Request方法向服务器(其他网站)请求数据。Request方法的使用方式如下:

    var req = http.request(opts,callback);

    我们注意到在request方法中有两个参数,其中opts参数为一个对象或者字符串,用于指定请求的目标url地址。如果opts参数值为一个字符串,将自动使用url模块中的parse方法转换为一个对象。其中opts参数值或者使用parse方法转换后的对象中,可以指定的属性有:

    • host: 用于指定域名或者目标主机的IP地址,默认的为localhost
    • hostname: 与host属性值相同,但是如果host和hostname的值都被绑定,那么将会优先使用hostname
    • port: 指定目标服务器用于HTTP客户端连接的端口号
    • localAddress:用于指定专用于网络连接的本地端口
    • socketPath:用于指定目标UNix域端口
    • method:用于指定HTTP请求方法,,默认属性值为get
    • path:用于指定请求路径及查询字符串,默认属性值为”/“
    • headers:用于指定客户端请求头对象
    • auth:用来指定认证信息部分
    • agent:用于指定HTTP代理

        headers = {
            'Content-Type': 'application/json',
            'Content-Length': reqBodyStr.length
        };
    
        options = {
            host: 'localhost',
            port: 4000,
            path: path,
            method: 'GET',
            headers: headers
        };
    
        internalReq = http.request(options, function (newRes) {
            newRes.setEncoding('utf-8');
    
            var responseString = '';
    
            newRes.on('data', function (data) {
                responseString += data;
            });
    
            newRes.on('end', function () {
                try {
                    var resultObject = JSON.parse(responseString);
                    //console.log(resultObject);
                    next(resultObject);
                    //res.send(resultObject);
                }catch (e){
                    //res.send('error');
                }
    
            });
        });
        internalReq.on('error', function (e) {
    
        });
        internalReq.write(reqBodyStr);
        internalReq.end();
    其中,
    newRes.on('data', function (data) {
                responseString += data;
            });

    客户端接收到数据 ;

    newRes.on('end', function () {
    
    });
    服务端结束响应。

    二、制作代理服务器

    制作代理服务器的大概流程为:
    首先创建一个HTTP服务器,当服务器接收到客户端请求后,向 被代理网站(www.baidu.com)请求数据,接收到数据之后将响应数据发送给客户端。
    server = http.createServer(function(sreq,sres) {
      url_parts = url.parse(sreq.url);
      options = {
        host:'www.baidu.com',
        port:80,
        path:url_parts.pathname,
        headers: sreq.headers
      };
      creq = http.get(options,function(cres) {
        sres.writeHead(cres.statusCode,cres.headers);
        cres.pipe(sres);
        });
      sres.pipe(creq);
    });
    server.listen(3000,'127.0.0.1');
    上述代码便实现了代理服务器。




    展开全文
  • 近期有些win7、win10用户莫名的遇到了一个问题,就是打开一些软件的时候提示系统资源不足,无法完成请求服务,刚开始以为是系统缺少了某些组件,结果发现是国外杀毒迈克菲(McAfee)在捣鬼。 直接在我的

    第一:win10我的电脑怎么放到桌面

    在桌面空白处点击鼠标右键选择个性化,如下图所示

    第二:就是最简单的方法 卸载 迈克菲(McAfee)改用国内杀毒

    近期有些win7、win10用户莫名的遇到了一个问题,就是打开一些软件的时候提示系统资源不足,无法完成请求服务,刚开始以为是系统缺少了某些组件,结果发现是国外杀毒迈克菲(McAfee)在捣鬼。

    直接在我的控制面板-》卸载程序-》选择迈克菲(McAfee),然后卸载之前所有关于win10不能装破解软件的问题全部解决了,这个感觉:就像一个男生,晚上偷偷躲在被窝看苍老师一样,然后嘴角露出邪恶那几秒的感觉,爽!曹爽的爽。。。

    本文由牛犊财经:https://www.niuducj.com整理发布

    展开全文
  • win10提示系统资源不足,无法完成请求服务的解决方法 win10提示系统资源不足,无法完成请求服务的解决方法 问题描述 分析: 操作: 验证: 举一反三: 问题描述 最近安装xmlspy2013 破解程序,就是打开...
  • HTTP请求方法

    千次阅读 2018-03-08 10:42:56
    HTTP请求方法根据HTTP标准,HTTP请求可以使用多种请求方法。HTTP1.0定义了三种请求方法: GET, POST 和 HEAD方法。...2HEAD类似于get请求,只不过返回的响应中没有具体的内容,用于获取报头3POST...
  • 微信小程序 解决请求服务器手机预览请求不到数据的方法 微信小程序的文档中明确说明了所有的请求是必须使用https的,以没用过https,由于小程序,不得不接触到https,研究了好长时间把tomcat配置好了https。然后用...
  • 如果使用了某种激活工具,那么激活系统后,电脑用过一段时间后可能会出现“系统资源不足,无法满足请求服务”这种情况。无法点击运行其他应用程序。 解决此问题,一般以下两种方法: 1、修改注册表; 2、利用...
  • http请求方式有哪些

    千次阅读 2016-03-14 09:16:00
    原文:百度文库 标准Http协议支持六种请求方法,即:  0,GET  1,HEAD  2,PUT  3,DELETE ... 但其实我们大部分情况...不过即使暂时不想涉及REST,了解这六种方法的本质仍然是很作用的。大家将会发现,原来
  • 2.4 HTTP请求方法

    千次阅读 2020-06-30 15:23:11
    在客户端服务器端发送请求时,需要确定使用的请求方法请求方法表明对URL指定资源的操作方式,服务器会根据不同的请求方法进行不同的响应。在HTTP/1.1中,共定义了8种请求方法,具体如下。 GET:请求指定的内容并...
  • get 和 post 请求有哪些区别?

    万次阅读 2019-07-01 18:15:33
    get 和 post 请求有哪些区别? 1、从主流浏览器的实现角度看 下面的对比表格摘自:w3school --HTTP 方法:GET 对比 POST GET POST 后退按钮/刷新 无害 数据会被重新提交(浏览器应该告知用户数据...
  • React学习(五)——服务器请求数据并显示

    万次阅读 多人点赞 2018-04-01 15:50:06
    大家好,我是凯文,本篇文章主要内容是如何在React项目中后台服务器请求数据,然后将数据解析并显示。 本文中涉及到的技术包括:node.js/express服务器的搭建、fetch发送数据请求...因为一个网站静态的页面是...
  • 请求方法之Option

    千次阅读 2019-02-26 18:10:09
    除了常用的GET、POST请求方法以外还有一个请求方法是经常遇到的,那就是OPTION预检请求 OPTION用来查询针对请求URI指定的资源支持的方法。 简单来说就是发送 OPTION请求询问服务器,你支持哪种请求方法啊? 支持GET...
  • 案例 let obj = { contractId: 1, // 操作 flowStatus: 2 reason: 3, }; util.ajax .get( "bsm/api/contract/v1/renewal/examine", {params: obj}) ...
  • 用jquery服务器发送请求get&post

    千次阅读 2015-02-11 19:04:24
    本文主要介绍通过jquery利用内置的ajax服务器发送get和post请求,简洁而且有效,本人已经测试通过 一.介绍get方法,代码如下 $(document).ready(function(){ $("button").click(function(){ $.get(...
  • Android如何定时服务器发送请求

    千次阅读 2018-05-17 13:30:17
    项目中需求就是没过一断时间去向服务器发送请求然后去刷新UI其实思路还是比较多的但是我还是选择了CounterDownTimer方法 。 CounterDownTimer 话说其实用法很简单就是通过一个onTick方法来实现定时执行。但是...
  • HTTP请求方法

    万次阅读 2019-09-20 15:59:30
    UT, DELETE, TRACE 和 CONNECT 方法。 序号 方法 ...请求指定的页面信息,并...POST请求可能会导致新的资源的建立和/或已资源的修改。 4 PUT 从客户端服务器传送的数据取代指定的文档的内容。 5 DELETE
  • http请求有哪些字段

    千次阅读 2019-03-28 10:23:25
    请求头字段的具体含义 Accept:浏览器可接受的MIME类型。 Accept-Charset:浏览器可接受的字符集。 Accept-Encoding:浏览器能够进行解码的数据编码方式,比如gzip。 Accept-Language:浏览器所希望的语言种类,当...
  • 请求消息包括,在消息首行中,对资源的请求方法、资源的标识符及使用的协议。 HTTP请求信息由3部分组成: l 请求方法URI协议/版本 l 请求头(Request Header) l 请求正文 HTTP响应 HTTP应答与HTTP请求...
  • 浏览器服务器发送请求报文

    千次阅读 2015-08-08 14:19:56
    1>浏览器服务器发送请求报文 htt:/www/baidu.com:80/login.aspx 当我在浏览器中输入一个这样以一个url地址:浏览器第一步做的事情就是根据这个www/baidu.com的域名来找DNS服务器,解析对应的IP地址。 浏览器在...
  • 在微信小程序中,我们可以通过微信的API与服务器进行数据传递,接下来我会详细介绍一下wx.request的用法。...<button type="primary" bindtap='sendRequest'> 发送http请求 </button><!-- 通过wx:for循环遍历
  • http请求与Request常用方法

    万次阅读 多人点赞 2018-10-01 10:26:51
    ①是请求方法,GET和POST是最常见的HTTP方法,除此以外还包括DELETE、HEAD、OPTIONS、PUT、TRACE。不过,当前的大多数浏览器只支持GET和POST,Spring 3.0提供了一个HiddenHttpMethodFilter,允许你通过“_method”的...
  • ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务的解决方法 出现情况: 第一天正确安装oracle11G及完成配置PL/SQL,正确运行生产环境。夜间计算机关机,第二天重新启机,无法正常运行生产环境,提示ORA-...
  • 常用的HTTP请求方法,按照RFC2616标准(HTTP1.1)来看,通常以下8种方法:get、post、put、delete、head、trace、connect、options。
  •  此请求属于get请求 写参数可以在后面加问号以键值对的方式客户端传递参数  &lt;a href="/Optimize_progrming/Servlet01?method=add"&gt;提交请求&lt;/a&gt;  通过form表单...
  • Https网站请求Http内容

    万次阅读 2020-06-12 16:49:11
    Https网站请求Http内容Https网站中无法请求Http资源(静态资源、接口等)分析解决方法 Https网站中无法请求Http资源(静态资源、接口等) 今天遇到个问题:Mixed Content: The page at ‘https://*****’ was ...
  • vue $http请求服务

    万次阅读 2018-06-13 00:30:54
    如果需要使用这个服务去百度下载vue-resource.js 然后引进项目即可引入单个vue的时候 可以使用vue-resource.js的文件实现交互效果搭建vue项目的时候,我们一般用axiosVue 原本一个官方推荐的 ajax 插件vue-...
  • 1. 地址栏输入  2. 超链接 &lt;a href = " "&gt; &lt;...5. 请求转发 ...1) 常用方法 2) 获取请求头   3) 获取客户端请求参数(客户端提交的数据)      请求乱码解决: ...
  • 一、概念  Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用... Tomcat主要组件:服务器Server,服务Service,连接器Connector、容器Container。连接器Connector和容器...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,544,703
精华内容 617,881
关键字:

向网站请求服务的方法有哪些