當前位置:首頁 » 編程語言 » c語言發送http請求
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言發送http請求

發布時間: 2022-09-05 00:17:06

❶ 如何用c實現http post json

http是基於Socket通信的一種通信規約,post是http規約的一種功能,json是常用於字元串解釋型編程語言及一些腳本上用的對象格式。

c語言實現 請求網址

首先, 127.0.0.1是本機地址

❸ 如何用C#實現多線程的向http發送及接收請求

可以通過以下代碼進行讀操作,也可以進行寫操作。如果想更底層化,可在ReadHttp方法中使用Request操作進行遠程訪問

private void button2_Click(object sender, EventArgs e)
{
for (int i = 0; i < 100; i++)
{
System.Threading.Thread t = new System.Threading.Thread(new System.Threading.ThreadStart(ReadHttp));
t.Start();
this.Text = i.ToString();
}
}

private void ReadHttp()
{
System.Net.WebClient client = new System.Net.WebClient();
client.OpenRead("http://www..com");
}

❹ c語言怎麼實現http 請求頭發送

1。建立到伺服器的TCP連接
2。向伺服器發送GET或者POST報文,報文格式請參考HTTP協議
3。接收伺服器返回的報文

❺ 如何用VC發送http請求

1、創建socket,利用tcp鏈接伺服器。
2、按照http協議的格式組裝請求字元串。
3、利用socket發送字元串。

❻ C語言,http報文,post請求,求大神詳解

URL要放在POST和HTTP/1.1之間,注意加空格。

URL好像不需要域名部分。

❼ C語言建立TCP連接後,怎麼發送HTTP的GET請求

send發送請求串 回車 再回車。 一行結束後 換另一個語句 最後要有一個空行
GET ***** 回車
回車

❽ 如何通過 c/c++ 實現http請求

示常式序,轉載自CNBLOG,做了針對C語言編譯器的適應性修正:

#include<stdio.h>
#include<winsock2.h>

#pragmacomment(lib,"ws2_32.lib")/*WinSock使用的庫函數*/

/*定義常量*/
#defineHTTP_DEF_PORT80/*連接的預設埠*/
#defineHTTP_BUF_SIZE1024/*緩沖區的大小*/
#defineHTTP_HOST_LEN256/*主機名長度*/

char*http_req_hdr_tmpl="GET%sHTTP/1.1 "
"Accept:image/gif,image/jpeg,*/* Accept-Language:zh-cn "
"Accept-Encoding:gzip,deflate Host:%s:%d "
"User-Agent:Huiyong'sBrowser<0.1> Connection:Keep-Alive ";


/**************************************************************************
*
*函數功能:解析命令行參數,分別得到主機名,埠號和文件名.命令行格式:
*[http://www..com:8080/index.html]
*
*參數說明:[IN]buf,字元串指針數組;
*[OUT]host,保存主機;
*[OUT]port,埠;
*[OUT]file_name,文件名;
*
*返回值:void.
*
**************************************************************************/
voidhttp_parse_request_url(constchar*buf,char*host,
unsignedshort*port,char*file_name)
{
intlength=0;
charport_buf[8];
char*buf_end=(char*)(buf+strlen(buf));
char*begin,*host_end,*colon,*file;

/*查找主機的開始位置*/

begin=(char*)(strstr(buf,"//"));
begin=(begin?begin+2:(char*)(buf));

colon=strchr(begin,':');
host_end=strchr(begin,'/');

if(host_end==NULL)
{
host_end=buf_end;
}
else
{/*得到文件名*/
file=strrchr(host_end,'/');
if(file&&(file+1)!=buf_end)
strcpy(file_name,file+1);
}
if(colon)/*得到埠號*/
{
colon++;

length=host_end-colon;
memcpy(port_buf,colon,length);
port_buf[length]=0;
*port=atoi(port_buf);

host_end=colon-1;
}

/*得到主機信息*/
length=host_end-begin;
memcpy(host,begin,length);
host[length]=0;
}


intmain(intargc,char**argv)
{
WSADATAwsa_data;
SOCKEThttp_sock=0;/*socket句柄*/
structsockaddr_inserv_addr;/*伺服器地址*/
structhostent*host_ent;

intresult=0,send_len;
chardata_buf[HTTP_BUF_SIZE];
charhost[HTTP_HOST_LEN]="127.0.0.1";
unsignedshortport=HTTP_DEF_PORT;
unsignedlongaddr;
charfile_name[HTTP_HOST_LEN]="index.html";
charfile_nameforsave[HTTP_HOST_LEN]="index1.html";
FILE*file_web;

if(argc!=2)
{
printf("[Web]input:%shttp://www.test.com[:8080]/index.html",argv[0]);
return-1;
}

http_parse_request_url(argv[1],host,&port,file_name);
WSAStartup(MAKEWORD(2,0),&wsa_data);/*初始化WinSock資源*/

addr=inet_addr(host);
if(addr==INADDR_NONE)
{
host_ent=gethostbyname(host);
if(!host_ent)
{
printf("[Web]invalidhost ");
return-1;
}

memcpy(&addr,host_ent->h_addr_list[0],host_ent->h_length);
}

/*伺服器地址*/
serv_addr.sin_family=AF_INET;
serv_addr.sin_port=htons(port);
serv_addr.sin_addr.s_addr=addr;

http_sock=socket(AF_INET,SOCK_STREAM,0);/*創建socket*/
result=connect(http_sock,(structsockaddr*)&serv_addr,sizeof(serv_addr));
if(result==SOCKET_ERROR)/*連接失敗*/
{
closesocket(http_sock);
printf("[Web]failtoconnect,error=%d ",WSAGetLastError());
return-1;
}

/*發送HTTP請求*/
send_len=sprintf(data_buf,http_req_hdr_tmpl,argv[1],host,port);
result=send(http_sock,data_buf,send_len,0);
if(result==SOCKET_ERROR)/*發送失敗*/
{
printf("[Web]failtosend,error=%d ",WSAGetLastError());
return-1;
}

file_web=fopen(file_nameforsave,"a+");

do/*接收響應並保存到文件中*/
{
result=recv(http_sock,data_buf,HTTP_BUF_SIZE,0);
if(result>0)
{
fwrite(data_buf,1,result,file_web);

/*在屏幕上輸出*/
data_buf[result]=0;
printf("%s",data_buf);
}
}while(result>0);

fclose(file_web);
closesocket(http_sock);
WSACleanup();

return0;
}

❾ c語言實現的http請求中,User-Agent該填什麼

User Agent表示的是客戶端軟體類型,也就是瀏覽器類型

❿ C# 發送HTTP中文請求

HttpUtility.UrlEncode()轉換一下
string url = HttpUtility.UrlEncode("http://localhost/a.aspx?aaa=中國");
string str = w.DownloadString(url);

記得要引用空間