`
httpclient_bd
  • 浏览: 74187 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

通过HTTP协议模拟Form提交的数举包构造

 
阅读更多
包由Header和Body构造成,Header记录了一些相关的数据,大同小异,唯一的一个需要注意的是Content-length字段标志了Body段的长度。在网上搜索到一段老外的代码,是全部转换为字符串后的处理代码,经实验后无法针对Binary文件提交,改写为Byte后可正常提交。

在Header中需要定义个分割符,可用32位UUID或者任意不可能与文件产生冲突的字符串作为分隔符

Body数据类格式类似如下

--boundaryboundary\r\n
Content-Description:form-data;name="theName"(\r\n)
\r\n
value\r\n
Body文件类协议如下

Content-Description:form-data;name="fileName";filename="thefilerealname"\r\n
Content-Type:application/octet-stream\r\n
[the file binary]
--boundaryboundary--\n
每个Body段开头由Boundary开头,最前面要有“--",在数据体结束的时候,末尾要有"--"再加一个\n字符
将整个Body转换为Byte流,计算出长度,赋值给Header的Content-Length,再将Header转化为Byte流,与Body进行结合,最后通过Winsock提交到指定的服务端处理程序。
分享到:
评论

相关推荐

    VC 构造http协议数据的post上传图片类(MFC环境 带编码转换)模拟表单提交

    在本文中,我们将深入探讨如何在VC++ MFC环境下构建一个HTTP协议数据的POST上传图片类,同时模拟表单提交。这个过程涉及到的关键技术包括HTTP POST请求、编码转换以及MFC类库的使用。 首先,我们需要理解HTTP POST...

    VC++模拟post上传Form表单

    首先,POST方法是HTTP协议中的一个请求方法,用于向服务器提交数据,比如填写表单后提交数据。在Web应用中,当我们点击表单的提交按钮时,浏览器通常会使用POST方法将表单内容发送到服务器。在VC++中实现这个功能,...

    Wininet—Http模拟POST发包登录.zip

    HTTP POST请求是HTTP协议中用于向服务器发送数据的一种方法,通常用于提交表单数据或者进行登录操作。在模拟POST发包登录时,我们需要构造一个包含用户名和密码等登录信息的数据包,并将其发送到服务器。 以下是...

    C# post模拟提交接收图片存到服务器上

    在C#编程中,模拟POST提交通常用于模拟用户在网页上的表单提交行为,例如上传文件,特别是图片。这个过程涉及到HTTP协议的理解、文件流处理以及服务器端的存储逻辑。以下将详细介绍如何实现这个功能。 首先,理解...

    http_postaget_method.rar_HTTP模拟_http 表单_http 解析

    总之,"http_postaget_method.rar_HTTP模拟_http 表单_http 解析"这个主题涵盖了HTTP协议的基础知识,特别是POST方法的使用,HTTP表单的处理,以及HTTP响应的解析。通过理解和应用这些知识,开发者能够创建能与...

    asp.net 模拟提交有文件上传的表单(通过http模拟上传文件)

    ***实现模拟提交带有文件上传功能的表单是通过模拟HTTP请求实现的,尤其是在某些环境限制下,比如使用单元测试框架进行测试时,常常需要绕过传统的HTML表单提交方式。本文将详细阐述如何通过编程方式模拟这种HTTP...

    C++使用 CHttpFile类,实现HTTP协议下请求数据,实现HTTP协议下多文件上传!VS2013开发,可直接运行!

    2. **模拟表单上传**:在HTTP协议下,多文件上传通常涉及到模拟HTML表单提交。这是因为HTTP的POST请求可以通过`multipart/form-data`编码方式携带多个文件。在C++中,开发者需要构造合适的HTTP头信息,并在请求体中...

    HTTP模拟工具

    使用这样的工具,用户可以通过输入指令或者交互界面来构造和发送HTTP请求,查看服务器的响应,并进行详细的分析。这种工具对于API开发者、Web开发者以及自动化测试工程师来说,是日常工作中不可或缺的工具之一。 ...

    JAVA模拟http上传文件_代码男_新浪博客

    这个过程通常涉及到表单提交、Multipart/form-data编码、HttpClient或者HttpURLConnection类的使用。下面将详细探讨这些知识点。 1. **HTTP POST请求**:在HTTP协议中,文件上传通常使用POST方法,因为GET方法不...

    Python模拟浏览器上传文件脚本的方法(Multipart/form-data格式)

    Python模拟浏览器上传...通过以上知识点的介绍,可以理解如何使用Python模拟浏览器上传文件,尤其是理解了Multipart/form-data格式数据的结构和构造方式,以及如何使用Python的requests库来实现文件上传的具体步骤。

    PHP版SOCKET模拟提交POST消息(源码)

    3. 构造HTTP头:POST请求的HTTP头通常包含"POST /path HTTP/1.1","Host: hostname","Content-Type: application/x-www-form-urlencoded"等字段,以及"Content-Length"字段来指示数据体的长度。 4. 发送HTTP头和...

    php模拟POST提交的4种方法.pdf

    接着构造POST请求头和数据,最后通过`fputs()`发送数据,并读取服务器的响应。 3. **利用file_get_contents()和stream_context_create()** PHP的`file_get_contents()`函数可以读取URL的内容,配合`stream_context...

    模拟登录源代码

    在编程领域,模拟登录是一种常见的技术,主要用于自动化测试、数据抓取或个人项目中,以自动填写和提交网站登录表单。本项目提供了一个简单的模拟登录的源代码,旨在帮助初学者理解这一过程。以下是对这个项目的详细...

    用java客户端程序模拟校园网网页认证

    总的来说,通过Java客户端程序模拟校园网网页认证需要理解HTTP协议、会使用HTTP客户端库,并可能涉及HTML解析。这是一个结合了网络通信和网页解析的综合实践,对于提升Java开发者在网络编程领域的技能非常有帮助。

    Simulate a Form POST Request Using WinInet.docx

    标题中的“Simulate a Form POST Request Using ...正确设置`Content-Type`头部和构造URL编码的表单数据是成功提交的关键。通过这样的技术,开发者可以编写程序来自动处理需要表单提交的任务,提高效率或实现特定需求。

    Asp.Net模拟表单提交数据和上传文件的实现代码

    在Asp.Net中,模拟表单提交数据和上传文件是一项...通过理解HTTP协议和相关的数据格式,我们可以有效地实现这些功能,解决跨域问题,并实现与服务器的交互。在实际开发中,这在处理异步请求、API调用等方面非常有用。

    使用java控制HTTP协议客户端应用.pdf

    这个`Http`类提供了一个简单的HTTP客户端实现,通过Java的Socket和I/O流来模拟HTTP通信。不过,实际开发中,更常见的做法是使用HttpClient库或Java 11及以上版本提供的`java.net.http.HttpClient`类,它们提供了更...

    post提交测试工具

    在IT行业中,POST提交测试工具是用于验证和调试HTTP协议中的POST请求的一种实用工具。POST方法是Web应用程序中客户端向服务器发送数据的主要方式之一,常用于表单提交、API交互等场景。本篇文章将深入探讨POST提交...

    java网络爬虫模拟登入抓取数据

    5. **发送登录请求**:执行POST请求,模拟用户提交登录表单。 6. **处理登录响应**:接收服务器返回的响应,检查是否登录成功。这可以通过检查重定向URL、特定的HTML内容或Cookie来判断。 7. **后续抓取**:如果...

    QQ 登陆 C# HTPP 协议

    2. **设置请求头**:为了正确地模拟浏览器行为,我们需要设置适当的请求头,如`Content-Type`(通常为`application/x-www-form-urlencoded`,表示数据以表单形式提交)、`User-Agent`(表示客户端类型,可以设为常见...

Global site tag (gtag.js) - Google Analytics