http协议相关 (切记host域前不能有空格)
来源:互联网 发布:手机照片编制软件 编辑:程序博客网 时间:2024/06/05 17:18
这两天在做微端,弄了下下载模块,采用的是http下载,传说迅雷等多线程下载也是利用http的分段传输的原理来做的。 http相对来说还是很简单的,没有什么需要说明的地方,但是有个小坑,之前跳进去耽搁了一天才爬出来。
对于http1.0版本,无所谓的,随意写。基本上没什么要注意的地方。对于http1.1版本,记住host是必选域,在 host 前面不能有 *空格* ,否则会返回400语法错误的。在必选的method域和host域前面都不能有空格的, 简单的测试表明在可选域前有空格,是不会影响该域的。 另外记得最后的/r/n/r/n表示http头的结束。
下面是简单的测试程序
#include <stdio.h>
#include <WinSock2.h>
#include <string>
using namespace std;
int main(void)
{
string str("GET /cvf.rar HTTP/1.1\r\nCache-Control:no-cache\r\nHOST:127.0.0.1\r\nACCEPT:*/*\r\n Range:10-\r\n\r\n");
WSADATA wsaData;
WSAStartup(MAKEWORD(2,2), &wsaData);
sockaddr_in addr;
addr.sin_family = AF_INET;
addr.sin_port = htons(80);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");
SOCKET mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
int ret = connect(mySocket, (SOCKADDR *)&addr, sizeof(addr));
if (SOCKET_ERROR == ret )
{
return 1;
}
int length = send(mySocket, str.c_str(), str.length(),0);
if (length <= 0)
{
return 1;
}
char buff[102400] = {0};
length = recv(mySocket, buff, 102400, 0);
return 0;
}
- http协议相关 (切记host域前不能有空格)
- to_char前有空格
- android http get中参数不能有空格
- 前面不能有空格
- 一,不能有空格
- 再串口通讯器中输入R/G/Y,亮起红、绿、黄灯,前不能有空格。
- lua elseif不能有空格
- 下载前不能有输出
- 切记scanf再输入字符的时候遇到空格是认为结束的,若有空格请用gets输入
- textarea文本开始前有好多空格
- 计算机网络(三)HTTP协议相关基础
- HTTP 协议相关
- HTTP 协议相关
- HTTP协议相关知识
- http协议缓存相关
- Http协议相关学习
- HTTP协议相关
- HTTP协议相关
- 【MST】高速公路(Highway.cpp)
- ios 输入
- android 布局,编译问题。Error in an XML file: aborting build.
- dump tree
- Sipdroid数据发送流程
- http协议相关 (切记host域前不能有空格)
- ubuntu 修改IP地址
- Myeclipse中导入database
- Sipdroid涉及到的协议之RFC3261
- 第十三周任务四纯虚函数与继承
- 代码中自己用的模版之一
- view的onInterceptTouchEvent 方法
- 使用DFA实现文字过滤
- UML建模 时序图