当前位置:   article > 正文

curl wget的使用以及socket实现_curl模仿soket请求

curl模仿soket请求

先说我的

  1. curl -o /dev/null -vL -H "Host: www.4299.com" http://10.10.110.42
  2. -v 意为verbose 显示的更人性化 更多 包括请求头和相应头等信息
  3. L 有的网址是自动跳转的。使用-L参数,curl就会跳转到新的网址。curl -L http://item.taobao.com/item.htm?id=25823396605 
  4. 键入上面的命令,结果就自动跳转为http://detail.tmall.com/item.htm?id=25823396605
  5. curl -L www.sina.com 则自动跳转到www.sina.com.cn
  6. H 即自定义头部信息传递给服务器


另一个是

  1. curl -vx 127.0.0.1:8081 -o /dev/null "http://cc.stream.qqmusic.qq.com/M500004Fo3dp3eyNKs.mp3?vkey=FC4C91B33D4FE5F5B7EFB
  2. x代表proxy


  1. wget与curl对比
  2. -d 意为显示debug信息
  3. -e 即execute一个命令  vim /etc/wgetrc看一些使用
  4. wget -d 'http://g.search.alicdn.com/img/i4/14611056290639161/TB2wnKEaVXXXXXBXXXXXXXXXXXX_!!11434611-0-saturn_solar.jpg_250x250.jpg_.webp' -e 'http_proxy=10.10.110.40:80' --header="Accept-Encoding:gzip, deflate, sdch"
  5. curl -vx "10.10.110.40:80" --header "Accept-Encoding:gzip, deflate, sdch" -o a.jpg "http://g.search.alicdn.com/img/i4/14611056290639161/TB2wnKEaVXXXXXBXXXXXXXXXXXX_!!11434611-0-saturn_solar.jpg_250x250.jpg_.webp"
  6. wget -d 'http://gd1.alicdn.com/imgextra/i1/60249411/T21lJMXC8aXXXXXXXX_!!60249411.jpg' -e 'http_proxy=10.10.110.40:80' --header="Accept-Encoding:gzip, deflate, sdch"
  7. curl -vx "10.10.110.40:80" --header "Accept-Encoding:gzip, deflate, sdch" -o a.jpg "http://gd1.alicdn.com/imgextra/i1/60249411/T21lJMXC8aXXXXXXXX_!!60249411.jpg"


参考链接

  1. http://www.cnblogs.com/liqiu/p/3200582.html
  2. http://www.aiezu.com/system/linux/linux_curl_syntax.html#respond

有没有觉得curl wget都不是很吊 那我来个吊的:自定义一个http

  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <unistd.h>
  5. #include <sys/types.h>
  6. #include <sys/socket.h>
  7. #include <netinet/in.h>
  8. #include <arpa/inet.h>
  9. #include <errno.h>
  10. #define BUFSIZE 1024
  11. //40是ats 45是nginx
  12. #define DestIp "10.10.110.40"
  13. #define DestPort 80
  14. //#define Req "GET /foo1.html HTTP/1.1\r\nHost: 10.10.110.45\r\nCache-Control: no-cache\r\nConnection: Close\r\n\r\n"
  15. //#define Req "GET /foo1.html HTTP/1.1\r\nHost: 10.10.110.45\r\nConnection: Close\r\n\r\n"//#define Req "GET /test3.html HTTP/1.1\r\nHost: 10.10.110.45\r\nConnection: Close\r\n\r\n"//#define Req "GET / HTTP/1.1\r\nHost: www.sina.com\r\nConnection: Close\r\n\r\n"
  16. //#define Req "GET /test3.html HTTP/1.1\r\nHost: 10.10.110.45\r\nConnection: Close\r\n\r\n"//curl -vx "10.10.110.40:80" --header "Accept-Encoding:gzip, deflate, sdch" -o a.jpg "http://gd1.alicdn.com/imgextra/i1/60249411/T21lJMXC8aXXXXXXXX_!!60249411.jpg"
  17. #define Req "GET /imgextra/i1/60249411/T21lJMXC8aXXXXXXXX_!!60249411.jpg HTTP/1.1\r\nHost: gd1.alicdn.com\r\nAccept-Encoding: gzip, deflate, sdch\r\nConnection: Close\r\n\r\n"#define ReqLen sizeof(Req)
  18. int main(int argc, char *argv[])
  19. {
  20. ssize_t i;
  21. int nRequestLen;
  22. char strResponse[BUFSIZE]={0};
  23. char strRequest[BUFSIZE]={0};
  24. int sockfd, numbytes;
  25. struct sockaddr_in dest_addr; /* connector's address information */
  26. if ((sockfd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
  27. perror("socket");
  28. exit(1);
  29. }
  30. dest_addr.sin_family = AF_INET; /* host byte order */
  31. dest_addr.sin_port = htons(DestPort); /* short, network byte order */
  32. dest_addr.sin_addr.s_addr = inet_addr(DestIp);
  33. /* Create and setup the connection */
  34. if (connect(sockfd, (struct sockaddr *)&dest_addr,sizeof(struct sockaddr)) == -1)
  35. {
  36. perror("connect");
  37. exit(1);
  38. }
  39. /* Send the request */
  40.   strncpy(strRequest, Req,ReqLen);   
  41. nRequestLen = ReqLen;
  1. if (write(sockfd,strRequest,nRequestLen) == -1)
  2. {
  3.         perror("write");
  4.         exit(1);
  5.   }
  6.     /* Read in the response */
  7.     while(1) {
  8.         i = read(sockfd,strResponse,BUFSIZE-1);
  9.         if(0 >= i){
  10.             break;
  11.         }
  12.         strResponse[i]='\0';
  13.         //strResponse[32] = '\0';
  14.         printf(strResponse);
  15.     }
  16.     /* Close the connection */
  17.     close(sockfd);
  18. }    




声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/256579
推荐阅读
相关标签
  

闽ICP备14008679号