中国IT动力,最新最全的IT技术教程
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 硬件维护 | 未整理篇 | 站长教程
ASP JS PHP工程 ASP.NET 网站建设 UML J2EESUN .NET VC VB VFP 网络维护 数据库 DB2 SQL2000 Oracle Mysql
服务器 Win2000 Office C DreamWeaver FireWorks Flash PhotoShop 上网宝典 CorelDraw 协议大全 网络安全 微软认证
硬件维护  CPU  主板  硬盘  内存  显卡  显示器  键盘鼠标  声卡音箱  打印机  机箱电源  BIOS  网卡  C#  Java  Delphi  vs.net2005
  当前位置:> 程序开发 > 编程语言 > C/C++
北京,一整天的雨。(http 试验相关代码)
作者:未知 时间:2005-09-13 23:28 出处:Blog.ChinaUnix.net 责编:chinaitpower
              摘要:北京,一整天的雨。(http 试验相关代码)
这个周末的雨似乎不太想停,到了北京半年了,还是第一次打伞出门。呵呵。想做一个http post试验但是没有成功,不知道cookie该如何放。请路过的大侠们指点指点吧。

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

#define SA      struct sockaddr
#define MAXLINE 4096
#define MAXSUB  200


#define LISTENQ         1024

extern int h_errno;

ssize_t process_http(int sockfd, char *host, char *page, char *poststr)
{
 char sendline[MAXLINE + 1], recvline[MAXLINE + 1];
 ssize_t n;
 snprintf(sendline, MAXSUB,
   "POST %s HTTP/1.0\r\n"
   "Host: %s\r\n"
   "Content-type: application/x-www-form-urlencoded\r\n"
   "Content-length: %d\r\n\r\n"
   "%s"
   "Cookie: ID=8253F1EBDD26864C4D06D5CF57645076; ID=bWFsaW5nADAwNwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAANGgAATqrfQitCnEIFAAAAAAACAbjWcTByRGiP;",
 ",  page, host, strlen(poststr), poststr);

 write(sockfd, sendline, strlen(sendline));
 while ((n = read(sockfd, recvline, MAXLINE)) > 0) {
  recvline[n] = '';
  printf("%s", recvline);
 }
 return n;

}
int main(void)
{
 int sockfd;
 struct sockaddr_in servaddr;

 char **pptr;
 //********** You can change. Puy any values here *******
 char *hname = "somewebsite.com";
 char *page = "/q";
// char *poststr = "ct=23&cm=7003&&&Submit=login\r\n";
 char *poststr = "word=ddsafdsafdsafsdaf&ct=17&cm=1&rn=10&lm=394496\r\n";
 //*******************************************************

 char str[50];
 struct hostent *hptr;
 if ((hptr = gethostbyname(hname)) == NULL) {
  fprintf(stderr, " gethostbyname error for host: %s: %s",
   hname, hstrerror(h_errno));
  exit(1);
 }
 printf("hostname: %s\n", hptr->h_name);
 if (hptr->h_addrtype == AF_INET
     && (pptr = hptr->h_addr_list) != NULL) {
  printf("address: %s\n",
         inet_ntop(hptr->h_addrtype, *pptr, str,
     sizeof(str)));
 } else {
  fprintf(stderr, "Error call inet_ntop \n");
 }

 sockfd = socket(AF_INET, SOCK_STREAM, 0);
 bzero(&servaddr, sizeof(servaddr));
 servaddr.sin_family = AF_INET;
 servaddr.sin_port = htons(8900);
 inet_pton(AF_INET, str, &servaddr.sin_addr);

 connect(sockfd, (SA *) & servaddr, sizeof(servaddr));
 process_http(sockfd, hname, page, poststr);
 close(sockfd);
 exit(0);

}

关闭本页
 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 chinaitpower.com All rights reserved. www.chinaitpower.com 版权所有