精华内容
下载资源
问答
  • linux 模拟http请求

    2015-09-17 15:31:32
    使用curl命令模拟http: get请求 curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 -i 显示全部信息 -l 显示头部信息 -v 显示解析全过程 post请求curl -d "param1...
    使用curl命令模拟http:
    get请求
    curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地
    -i 显示全部信息
    -l 显示头部信息
    -v 显示解析全过程
    post请求
    curl -d "param1=value1&param2=value2" "http://www.baidu.com"
    


    使用wget命令模拟http:

    get请求
    wget "http://www.baidu.com"
    
    
    post请求
    wget --post-data 'user=name&password=pwd' "http://www.baidu.com"

    展开全文
  • linux模拟http请求命令

    2019-05-15 19:07:00
    Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求。下面就来介绍一下Linux系统如何模拟Http的get或post请求。 一、get请求:  1、...

       Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求。下面就来介绍一下Linux系统如何模拟Http的get或post请求。

    一、get请求:

      1、使用curl命令:

      curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地

      curl -i “http://www.baidu.com” 显示全部信息

      curl -l “http://www.baidu.com” 只显示头部信息

      curl -v “http://www.baidu.com” 显示get请求全过程解析

      2、使用wget命令:

      wget “http://www.baidu.com”也可以

     

    二、post请求

      1、使用curl命令(通过-d参数,把访问参数放在里面):

      curl -d “param1=value1¶m2=value2” “http://www.baidu.com”

      2、使用wget命令:(--post-data参数来实现)

      wget --post-data ‘user=foo&password=bar’ http://www.baidu.com

      以上就是Linux模拟Http的get或post请求的方法了,这样一来Linux系统也能向远程服务器发送消息了。  

    转载于:https://www.cnblogs.com/longxok/p/10871458.html

    展开全文
  • linux模拟POST请求

    千次阅读 2018-05-21 09:54:23
    curl -X POST http://172.21.128.170:9000/v2/diskdomain/domain/construct -d '{"name":"test1","desc":"test1","construct_type":1,"DtbDiskInfoList&...
    curl -X POST http://172.21.128.170:9000/v2/diskdomain/domain/construct -d '{"name":"test1","desc":"test1","construct_type":1,"DtbDiskInfoList":[1,2,3,4],"sas_hotspare_strategy":"mid","nlsas_hotspare_strategy":"mid","ssd_hotspare_strategy":"mid"}'
    展开全文
  • linux socket模拟HTTP请求上传数据

    千次阅读 2012-12-12 19:27:26
    这是用socket模拟HTTP请求上传文件的的C++代码,里面有一些从网上摘录的代码,我在这里按我的需求整理后,再次分享出来,一是算作个人笔记,二是为广大看官遇到类似的问题作参考! #include #include #include ...

        这是用socket模拟HTTP请求上传文件的的C++代码,里面有一些从网上摘录的代码,我在这里按我的需求整理后,再次分享出来,一是算作个人笔记,二是为广大看官遇到类似的问题作参考!

    #include <string.h>
    #include <stdlib.h>
    #include <algorithm>
    #include <fstream>
    #include <iostream>
    
    using namespace std;
    
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <arpa/inet.h>
    
    #define SEND_RQ(MSG) send(sock,MSG,strlen(MSG),0);
    #define _DEBUG_PRINT(X) X
    
    int FindContentLength(string header);
    int RecvHttpHeader(int socket, string& header);
    int RecvHttpBody(int socket, string& body, int contentLength);
    
    int request(char* hostname, int port, char* url)
    {
    	struct sockaddr_in sin;
    	int sock = socket (AF_INET, SOCK_STREAM, 0);
    	if (sock == -1) {
    		_DEBUG_PRINT(cout<<"create socket error!"<<endl);
    		return -100;
    	}
    
    	sin.sin_family = AF_INET;
    	sin.sin_port = htons( (unsigned short)port);
    	//sin.sin_addr.s_addr = inet_addr(hostname);
    	inet_pton(AF_INET, hostname, (void*)&sin.sin_addr);
    
    	_DEBUG_PRINT( cout<<"Port :"<<sin.sin_port<<", Address : "<< sin.sin_addr.s_addr<<endl);
    	int result = connect (sock,(const struct sockaddr *)&sin, sizeof(sockaddr_in) );
    	if(result != 0) {
    		_DEBUG_PRINT(cout<<"connect failed"<<endl);
    		return -101;
    	}
    
    	SEND_RQ("POST ");
    	SEND_RQ(url);
    	SEND_RQ(" HTTP/1.1\r\n");
    	SEND_RQ("Accept: text/html, image/jpeg, application/x-ms-application, */*\r\n");
    	SEND_RQ("User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:17.0) Gecko/17.0 Firefox/17.0\r\n");
    	SEND_RQ("Accept-Language: zh-CN,en-US;q=0.5\r\n");
    	SEND_RQ("Accept-Encoding: gzip, deflate\r\n");
    	SEND_RQ("Host: ");
    	SEND_RQ(hostname);
    	SEND_RQ("\r\n");
    
    	char *boundary = (char *)"---------------------------41184676334";
    	char content_type[512];
    	memset(content_type, 0, 512);
    	strcat(content_type, "Content-Type: multipart/form-data; boundary=");
    	strcat(content_type, boundary);
    	strcat(content_type, "\r\n");
    
    	//--Construct request data {filePath, file}
    	char content_before[4096];
    	memset(content_before, 0, 4096);
    	strcat(content_before, "--");
    	strcat(content_before, boundary);
    	strcat(content_before, "\r\n");
    	strcat(content_before, "Content-Disposition: form-data; name=\"filePath\"\r\n\r\n");
    	strcat(content_before, destPath);
    	strcat(content_before, "\r\n");
    	strcat(content_before, "--");
    	strcat(content_before, boundary);
    	strcat(content_before, "\r\n");
    	strcat(content_before, "Content-Disposition: form-data; name=\"file\"; filename=\"");
    	strcat(content_before, filename);
    	strcat(content_before, "\"\r\n");
    	strcat(content_before, "Content-Type: application/octet-stream\r\n\r\n");
    	//strcat(content_before, "Content-Type: image/jpeg\r\n\r\n");
    
    	char content_end[1024];
    	memset(content_end, 0, 1024);
    	strcat(content_end, "\r\n");
    	strcat(content_end, "--");
    	strcat(content_end, boundary);
    	strcat(content_end, "--\r\n");
    
    	// store the full name of file
    	ifstream fin("/home/abc/test/enjoyor.mp4" ,ios::in|ios::binary);
    	if(!fin){
    		_DEBUG_PRINT(cout<<"File open error!\n");
    		close(sock);
    		return -102;
    	}
    	//---get the length of the file
    	int temp = fin.tellg();
    	fin.seekg(0,ios_base::end);
    	int len = fin.tellg();
    	fin.seekg(temp);
    
    	char *lenstr;
    	lenstr = (char*)malloc(128);
    	sprintf(lenstr, "%d", (strlen(content_before)+len+strlen(content_end)));
    
    	strcat(content_type, "Content-Length: ");
    	strcat(content_type, lenstr);
    	strcat(content_type, "\r\n\r\n");
    	free(lenstr);
    
    	SEND_RQ(content_type);
    	_DEBUG_PRINT(cout<<content_type);
    	SEND_RQ(content_before);
    	_DEBUG_PRINT(cout<<content_before);
    
    	char c[1024];
    	memset(c, 0,1024);
    	int tmpLen=0;
    	while(!fin.eof())
    	{
    		if(tmpLen<(len/1024)*1024)
    		{
    			fin.read(c, 1024);
    			send(sock,c,1024,0);
    			sleep(0.001); //milisecond
    			tmpLen+=1024;
    		}
    		else
    		{
    			fin.read(c,len-(len/1024)*1024);
    			send(sock,c,len-(len/1024)*1024,0);
    			break;
    		}
    	}
    	fin.close();
    	SEND_RQ(content_end);
    
    	string header;
    	int headerLength = RecvHttpHeader(sock,header);
    	if(headerLength > 0)
    	{
    		if(header.find("200") != string::npos) //HTTP/1.1 200 OK
    		{
    			int contentLength = FindContentLength(header);
    
    			if(contentLength > 0)
    			{
    				string strBody;
    
    				RecvHttpBody(sock,strBody,contentLength);
    				_DEBUG_PRINT(cout<<"the sRecvBuf is "<<strBody.c_str()<<endl);
    			}
    		}
    		else //HTTP/1.1 400 or else
    		{
    			_DEBUG_PRINT(cout<<"unexpected http header status!"<<endl);
    			close(sock);
    			return -103;
    		}
    	}
    	else
    	{
    		_DEBUG_PRINT(cout<<"the return string is not http protptype"<<endl);
    		close(sock);
    		return -104;
    	}
    
    	close(sock);
    	return 0;
    }
    
    int FindContentLength(string header)
    {
    	transform(header.begin(),header.end(),header.begin(),(int(*)(int)) tolower);
    
    	string::size_type pos = header.find("content-length",0);
    	if(pos != string::npos)
    	{
    		string::size_type posEnd = header.find("\r\n",pos);
    		string contentString = header.substr(pos,posEnd - pos);
    		_DEBUG_PRINT(cout<<contentString.c_str());
    		pos = contentString.find(":",0);
    
    		string strLength = contentString.substr(pos + 1);
    		return (int)std::strtol(strLength.c_str(),NULL,10);
        }
    	return 0;
    }
    
    //receive header
    //param: socketId,receivedString
    int RecvHttpHeader(int socket, string& header)
    {
    	header.clear();
    	char chRecvBuf[1];
    
    	//endBytes[]{'\r', '\n', '\r', '\n'}
    	char endBytes[] = { 13, 10, 13, 10 };
    	int posCompare = 0;
    	while(true)
    	{
    		int b = recv(socket,chRecvBuf,1,0);
    		if (b == -1)
    			return -1;
    
    		header.append(chRecvBuf,1);
    
    		if(endBytes[posCompare] == chRecvBuf[0])
    		{
    			posCompare++;
    			if (posCompare == sizeof(endBytes))
    			{
    				break;
    			}
    		}
    		else
    		{
    			posCompare = 0;
    		}
    	}
    
    	return header.length();
    }
    
    //receive http response body
    int RecvHttpBody(int socket, string& body, int contentLength)
    {
    	body.clear();
    	char chRecvBuf[1024];
    	while (body.length() < contentLength)
    	{
    		memset(chRecvBuf,0,sizeof(chRecvBuf));
    		int b = recv(socket,chRecvBuf,sizeof(chRecvBuf) - 1,0);
    		if (b == -1)
    			return -1;
    		body.append(chRecvBuf);
    	}
    	return body.length();
    }

    想了解HTTP上传请求的数据格式,可见我之前的一篇博客http://blog.csdn.net/ronux/article/details/8244840

    参考:http://www.codeguru.com/cpp/i-n/internet/http/article.php/c8813/HTTP-Post-Using-C.htm



    展开全文
  • linux curl模拟http请求发送数据: ①get方式提交数据 ②post方式提交数据 ③绑定host提交数据
  • linux环境下,手工模拟浏览器请求,手工拼装http请求 。使用nc命令 先安装nc,切换到root用户:yum install -y nc 安装成功后 先发起个请求nc www.baidu.com 80 -v 然后输入请求行 GET / HTTP/1.0 Host:...
  • 1. 我们简单模拟HTTP请求的读取和分析 判断HTTP头部结束的依据是遇到一个空行,该空行仅包含一对回车换行符 。如果一次读操作没有读入HTTP请求的整个头部, 即没有遇到空行, 那么我们必须等待客户继续写数据并再次...
  • 背景最近项目中需要测试接口,但是测试服务器通过堡垒机才能访问,暂时又没有通过Nginx进行转发,只好直接在Linux模拟http请求进行测试。方法get请求curl “http://www.baidu.com” 如果URL指向的是一个文件或者一...
  • 1.发送post请求 curl 请求路径 -d '报文' -X POST -H ...2.发送 restful 请求 需要服务方在方法上声明http服务的路径 curl curl http://xxx:xxx/项目/ resource/com.ips.core.psfp.platform.biz.label.resource.L...
  • Http请求指的是客户端向服务器的请求消息,Http请求主要分为get或post两种,在Linux系统下可以用curl和wget命令来模拟Http的请求。 下面就来介绍一下Linux系统如何模拟Http的get或post请求。 一、发送Get请求: ...
  • CURL模拟http请求

    千次阅读 2019-01-13 20:05:19
    它被广泛应用在 UNIX、 多种 Linux 发行版中,并且有 DOS 和 Win32、 Win64 下的移植版本。如果你的开发环境是 Mac 或者 Linux, 会自带 curl;如果是 Windows 系统,下载 window 版本(curl-7.33.0-win64-ssl-sspi...
  • linux shell 模拟post请求

    2015-07-24 10:57:00
    curl -d "param1=value1¶m2=value2" http://www.baidu.com 参考: http://blog.sina.com.cn/s/blog_6e2d53050101k230.html 转载于:...
  • 写一个print.sh 脚步 while read line do waybillno=`echo $line | awk -F, '{print $1}'` newwaybillno=`echo $line | awk -F, '{print $2}'` deptcode=`echo $line | awk -F, '{print $4}'` ...
  • Linux系统中,可以利用命令来模拟HTTP请求中的GET、POST、PUT等请求,本文将阐述基于curl命令来模拟GET与POST请求,PUT、DELETE等请求与POST类似,同时分享一下本人的踩坑实录。 2.发送GET请求 在利用curl发送get...
  • Linux下curl模拟带header的Http请求

    万次阅读 2017-11-28 19:54:53
    格式: curl -H “头部内容” http://xxx.123.comcurl -H "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 Accept-Encoding:gzip, deflate, sdch Accept-Language:zh-CN,zh;q=...
  • Linux 下curl模拟Http 的get or post请求。  (2014-01-17 14:49:54) 转载▼ 标签:  it 分类: 日积月累 一、get请求 curl "http://www.baidu.com"  如果这里...
  • php模拟http请求

    千次阅读 2016-08-11 08:30:46
    php发送http请求 http请求有get,post。 php发送http请求有三种方式[我所知道的有三种,有其他的告诉我]。 file_get_contents();详情见:http://www.cnblogs.com/simpman/p/3419989.htmlcurl发送请求。...
  • java中执行curl请求模拟http请求

    千次阅读 2019-08-01 17:09:00
    java触发http请求,采用的curl的方式 需要注意的是,命令需要以数组的形式传递参数,就是把正常的命令以空格切分成数组就行了。而且参数前后不能有空格。 linux下命令: curl http://192.168.x.xxx:8900/v1 -d '[...
  • Linux模拟Http 的get or post请求(curl和wget两种方法)
  • 【curl和wget命令】模拟HTTP请求

    千次阅读 2017-09-30 14:53:28
    在这里主要介绍linux系统如何模拟Http的get或post请求。 一、get请求:  1、使用curl命令:  curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地  curl -i ...
  • HTTP请求流程(二)----Telnet模拟HTTP请求 上一部分"流程简介", 我们大致了解了下HTTP请求的流程,这一篇我向大家介绍下如何利用Telnet来模拟Http请求---访问百度。 我们直接开始吧! 1、打开"运行"->cmd进入...
  • get请求 curl命令模拟get请求: curl “http://www.baidu.com” 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 ...curl命令模拟get请求携带参数(linux): curl -v http://127.0.0.
  • http模拟并发请求

    2020-03-03 22:53:16
    linux 安装ab工具 yum install httpd-tools 用法: ab -n 请求数 -c 并发数 -p 指定请求数据文件 -T "application/x-www-form-urlencoded" 测试请求地址 注意: 请求测试地址:一般为from 表单请求地址,...
  • 一、get请求 curl "http://www.baidu.com"  如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地 curl -i "http://www.baidu.com"  显示...curl -v "http://www.baidu.com" 显示get请求全过程解析

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 51,828
精华内容 20,731
关键字:

linux模拟http请求

linux 订阅