精华内容
下载资源
问答
  • 工作上需要通过http协议往服务器post一条json字符串,服务器会返回成功或者故障信息,网络上找了些HttpWebRequest例子,都遇到同一种现象,相同的代码,如果我电脑打开Fiddler 4软件,执行结果能够成功,但我关闭...
  • 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异常
    展开全文
  • 使用python向服务器POST大文件

    千次阅读 2016-03-17 17:55:52
    使用python向服务器POST大文件 python 对http操作有几个库 urllib 、 urllib2 还有httplib httplib比较偏底层 一般情况下使用urllib和urllib2就行了 NOTICE 在python3中urllib与urllib2被分割合并...

    使用python向服务器POST大文件

    python 对http操作有几个库 urllib 、 urllib2 还有httplib

    httplib比较偏底层 一般情况下使用urllib和urllib2就行了

    NOTICE

    在python3中urllib与urllib2被分割合并为了 urllib.request, urllib.parse, and urllib.error

    httplib重命名为 http.client

    分析http协议

    python的这几个库中并没有提供直接上传文件的接口 我们先看下普通浏览器是怎么上传文件的 这里我在本地创建简单php程序 若有提交文件,则打印出文件相关的信息。否则显示一个上传表单表单

    这里推荐一个抓包工具fildder 可以很方便的抓取htttp数据,并且直观的显示

    下面就是抓取到的内容

    从第1-13行就是请求消息http头部的内容,然后下面有个空行 比较重要的几行是

    请求消息(Request message)有以下几部分组成

    • 请求行(request line), 例如 GET /images/logo.png HTTP/1.1
    • 请求头(Request Headers) 比如上面的 Host: localhost、 Content-Length: 295
    • 空行
    • 消息主体 message body

    NOTICE

    请求行与请求头必须以结尾,空行只能有不能有空格什么的 在HTTP/1.1协议中,除了Host 所有的请求头都是可选的(当然若上传文件的话,就必须设置了Content-Length和Content-Type了, 不然服务器收不到数据的,虽然也能成功响应)

    这里message body的类型是multipart/form-data;

    boundary 是随机的内容每次请求都不一样, Content-Type为 multipart/form-data; 可同时传输多项数据,而这些数据就是通过 boundary分割开来的

    每一项的数据都是’–‘+boundary+换行开始 ,然后是Content-Disposition: form-data;name=”表单项名”

    若是文件的话 还有个filename 以及Content-Type,接下来一个空行

    最后’–‘+boundary+’–‘+换行结束

    到这里整个http请求就结束了

    模拟提交数据

    其实http协议就是字符串按照约定规则拼接到一起 然后服务器再来解析得到数据 所以我们自己直接使用socket也能发起了一个http请求

    但是有了urllib2我们可以省很多事 只需“拼接”内容部分就行了

    url 可以是一个链接或者Request对象 data 就是我们要“拼接的内容”

    下面是运行后的输出结果

    php能正常接收传输的文件了 但是这里有个问题 ,我们拼接数据的时候使用的是

    直接把文件内容读到内存中去了,小文件还好,要是几百M上G的文件还用这种方法就不行了,这样会把你的内存吃干。

    所以我们就需要弄个变通的方法,让它一块一块的发送数据,读一点发送一点。 这几个库并没有提供类似的方法实现这一个功能,所以就需要自己动手了。

    首先介绍一个python的关键字 yield 关于介绍python yield的文章可以查看Python yield 使用浅析 可以通过它来实现一个生成器(generator) 来不断的读取文件数据,而且是只在我们需要的时候读取

    然后我重写了 httplib 中 HTTPConnection.send(data)使它可以接收一个generator,从里面取数据然后发送 下面是原版HTTPConnection.send的源码

    它支持文件类型File Object 或者是一个字符串

    下面是个重新版本

    当然若想实现完美的文件提交,还需要做个封装,下面是一个简单的实现,还有写不完善的地方,post数据只能传文件,打算做个python lib封装一下

    现在有很多现成的第三方库比如 poster Requests 可以实现这些功能了,但是由于是第三方库需要用户手动安装,在一个我需要上传大文件时有个回调功能,这样就能显示进度了。 等运行稳定了会添加到kuaipan cli 里面,就可以摆脱poster依赖

    展开全文
  • 服务器post的json内部有双引号

    千次阅读 2019-02-25 10:09:29
    服务器post的json内部有双引号,破坏了json的格式,返回信息提示错误。 manager finished "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\"> <title>400 ...

    向服务器post的json内部有双引号,破坏了json的格式,返回信息提示错误。

    manager finished 
    "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 3.2 Final//EN\">
    <title>400 Bad Request</title>
    <h1>Bad Request</h1>
    <p>The browser (or proxy) sent a request that this server could not understand.</p>"
    

    猜测json格式可能有误,可以在json在线编辑器中进行验证
    在这里插入图片描述
    果然,json数据内部的英文双引号破坏了json的结构。

    在博客中查询到的解决方法是把英文双引号转为中文双引号。

    参考文献:
    接口返回的 json数据中含有双引号 或其他非法字符的解决办法

    展开全文
  • Python向服务器Post数据(可…

    千次阅读 2013-12-23 20:05:42
    原文地址:Python向服务器Post数据(可实现自动登录)作者:woodstone121Python向服务器Post数据(可实现自动登录) 2009-04-08 16:05 # -*- coding: cp936 -*- import httplib import urllib user='aaa' params...
    Python向服务器Post数据(可实现自动登录)
    2009-04-08 16:05
    # -*- coding: cp936 -*-
    import httplib
    import urllib
    user='aaa'
    params=urllib.urlencode({"Text1":user})
    headers={"Accept":"text/html","User-Agent":"IE","Content-Type":"application/x-www-form-urlencoded"}
    website="localhost:1483"
    path="/abc/(S(drixqpzt15p2dpepy5xk1enq))/Default.aspx"
    conn=httplib.HTTPConnection(website)
    conn.request("POST",path,params,headers)
    r=conn.getresponse()
    print r.status,r.reason
    data=r.read()
    print data
    conn.close()

    展开全文
  • iOS开发往服务器Post一个json数据

    千次阅读 2016-05-18 11:45:59
    有时候需要往服务器Post一个json数据。参数参数可以被自动序列号。前提是要是iOS里面的数据类型,比如NSDictionary,NSArray,NSNumber,NSString等。如果是自己的模型数组,可以自己写一个模型的ToString方法,网上...
  • PHP使用CURL向服务器POST文本数据和上传图片的代码示例
  • C++实现的服务器post访问并实现JSON数据流解析

    千次下载 热门讨论 2013-11-08 18:08:15
    本代码借鉴了网上其他大神用C++实现的post方法,自己经过修改并添加了对接收的json数据流进行了解析的功能
  • C# 4.0 ,使用HttpWebRequest向服务器发送post请求,使用HttpWebResponse 接收服务器返回的数据,返回数据有3M左右,但是实际上string只接收到2.2M,数据没有完全接收就结束了。导致接收到的数据不完整无法进行解析。...
  • 原文链接:http://www.easycharts.club:8443/article/11 点击之后你绝不会后悔
  • 在上一篇的文章中我们详细讲述了如何将我们的应用服务器和微信腾讯服务器之间的对接操作,最后接入成功,不知道你有没有发现在上一篇的【controller】中我定义了一个get方法和一个post方法,但是在使用过程中我们就...
  • 这段时间在给公司开发B2B平台,其中用到RSA非对称加密来对APP和服务器通信进行数据加密 ,由于我们APP和服务端的程序员使用不同的语言,服务湍的PHP调试相当困难,所以琢磨了一个PHP页面来模拟APP POST数据到服务端...
  • 我需要上传学号Stu_id和学籍Stu_text,按道理应该用POST方式,但是为什么提供的url里面后面还要加上Stu_id和Stu_text这两个数据呢,完全可以用GET吧数据写在url里面呀
  • req.Method = "POST"; req.ContentType = "application/x-www-form-urlencoded"; //querystring '?msg=xxx&type=0' string strQuery = "msg="; strQuery += HttpUtility.UrlEncode(msg); strQuery += "&type=0"; ...
  • '上传文件  Public Function uploadTheFile(ByVal uploadUrl As String, ByVal ... MsgBox(response.StatusCode.ToString) '向网络服务器 POST 后返回的状态码,成功则返回"OK"  response.Close() '关闭  End Fu
  • 1,主要内容为Android客户端请求服务器post提交参数; 2,请求到完整的json数据之后,进行解析取值(看json数据是对象类型还是数组结构); private void okhttpDate() { Log.i("TAG","--ok-&...
  • 服务器一直跑得好好的 今天早上突然网站代码无法运行 查了一下,发现表单提交时如果是POST方法 则REQUEST时报错 服务器没有任何改动,突然就这样了 我写了最简单的代码 1.asp <html> <head> ...
  • 应)  1. PCI 适配器  2. 主板 ... 1.... 2. 验证引导设备放置在扫描顺序中靠前的位置以便POST   可以执行它  3. 验证所有适配器在Configuration/Setup Utility   程序中设置正
  • 使用post()方法以POST方式从服务器发送数据 与get()方法相比,post()方法多用于以POST方式向服务器发送数据,服务器接收到数据之后,进行处理,并将处理结果返回页面,调用格式如下: $.post(url,[data],...
  • Qt Post上传图片文件到服务器

    千次阅读 2017-05-21 14:42:57
    前言在项目过程中要做一个图片分享功能,将图片上传到服务器 然后服务器返回图片的存储位置,本地将路径生成二维码进行分享,这里要讲的是图片上传部分,我采用的是post方式上传,要用到Qt的QNetworkAccessManager类...
  • http post方法传递到服务器服务器显示null值![图片说明](https://img-ask.csdn.net/upload/201508/14/1439529234_131522.png)
  • 问:在不用表单提交的情况下,和不用ajax的情况下,如何用以post方式访问服务器? 或者用ajax访问也行,但是ajax怎样跳转页面啊?ajax只能接收服务器返回来的文本,在服务器做跳转的话,打开浏览器调试那个respond是...
  • * @param requestParam 请求参数 * @param url 请求url * @return 服务器返回结果 */ static String send(String url, String requestParam) throws Exception{ //发送并获取服务器返回值 String resultMsg = post...
  • android post上传文件到服务器

    千次阅读 2015-07-09 14:36:46
    android 通过post请求上传文件到服务器
  • nodejs服务器——post请求与响应

    千次阅读 2019-01-02 20:28:32
    1.配置服务器入口文件 // A.下载express模块:npm install express@4 -s const myexpress=require(&amp;quot;express&amp;quot;); // B.下载morgan模块:npm install morgan -s const logger=require(&...
  • http post 文件 到服务器

    千次阅读 2015-02-12 09:40:05
    http post file
  • 服务器读取不到POST的数据

    千次阅读 2016-11-01 19:22:38
    前因:之前因为有个需求,将内容发送到服务器上,但是post、get的数据量似乎都不太够,所以查资料,说是可以通过修改tomcat的配置实现上传信息的大小不受限制  maxPostSize="0" 在中,增加一个maxPostSize的...
  • 为啥说get是从服务器获取数据,post是向服务器提交数据 呢?

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 46,513
精华内容 18,605
关键字:

服务器post