用C语言http socket 编程以post方法传输数据的实质和实现方法

linxiweier 2008-12-05 03:11:42
要用C语言写一个关于http协议的socket编程基础函数库(客户端的)。遇到了问题,get方法,笼统来说就是提供一个url,然后就可以获得相应的资源。那么post方法的实质是什么?写成请求头就是发送给server的数据,该怎样写?知识有限,编程语言用得还不是很熟练,期待智者给以指点~~~~~~ 不胜感激......
哦 关于给分,我还不太了解,如果我有很多分愿意分享给大家。
...全文
2186 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
nailler 2012-06-19
  • 打赏
  • 举报
回复
对啊,有同感,就是post数据段的内容不知道要干吗?也不知道服务器端的程序在哪个目录下面??
yue_1986_2010 2010-11-18
  • 打赏
  • 举报
回复
调试中。。。
sandlu 2009-10-16
  • 打赏
  • 举报
回复
我也想知道是怎么做的?
mrbone9 2009-09-20
  • 打赏
  • 举报
回复
我现在也遇到这个问题
connect上后发送http post消息,消息如下(不知道有没有错误)

(void)fprintf(write_fp, "POST HTTP/1.1\r\n");
(void)fprintf(write_fp, "Host: %s\r\n", serverIP);
(void)fprintf(write_fp, "Content-Length: %s\r\n", strlen("test"));
(void)fprintf(write_fp, "Connection: Keep-Alive\r\n" );
(void)fprintf(write_fp, "\r\n" );
(void)fprintf(write_fp, "test");
(void)fflush(write_fp);

抓包结果是三次握手后(即connect后),进入了四次断开连接过程,而不是post请求处理。
望高人指点迷津,谢谢!!
sumertree 2009-06-06
  • 打赏
  • 举报
回复
我也在寻找中。。。。。。
fengjl026 2008-12-05
  • 打赏
  • 举报
回复
就根据?后面的一堆参数才能知道吧?这个还是你抓包看
linxiweier 2008-12-05
  • 打赏
  • 举报
回复
给完分我就成乞丐了!!!!
~~(>_<)~~ 我要好好学习去挣分
linxiweier 2008-12-05
  • 打赏
  • 举报
回复
哦 非常感谢,从网上看多过一小段程序就是在最后加的post数据段,听您这么说就更加确定了。
现在我还有最想知道的,就是在什么情况下要用到post asp的应用中是在From着块,post方法传代的是From集合。
我这样写一个程序,我怎么用这个post?数据段是什么内容,我怎么知道对方要什么内容,还是说这些内容我本来就知道的才能用。
请不吝赐教......
fengjl026 2008-12-05
  • 打赏
  • 举报
回复
不论pos还是get的实质就是一段数据,这些数据你可以用抓包方式获取,还可以使用源代码的服务器自己测试得到

总之以上就是属于http协议的部分,因为http是基于tcp的,所以你用c完全可以写一个socket的tcp,然后用tcp再
封装成http的即可
BluntBlade 2008-12-05
  • 打赏
  • 举报
回复
所有的数据都写完后,在该Socket上进行响应报文的接收。最后解析一下响应报文,检查响应状态就可以了。
BluntBlade 2008-12-05
  • 打赏
  • 举报
回复
先调用合适的Socket API建立TCP连接,然后写入HTTP报文段。
一般的HTTP报文段是这么写的:

POST URL HTTP/1.1\r\n
若干HTTP选项\r\n
\r\n
POST数据段(以\r\n分隔)

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧