socket 发送请求

socket方式:

$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
//socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec"=>20, "usec"=>0));
socket_connect($socket, ‘www.baidu.com‘, 80);

//里面的换行代表 \r\n 注意拷贝的代码后面可能有空格
$http = <<<eof
GET / HTTP/1.0
Accept: */*
User-Agent: Lowell-Agent
Host: www.baidu.com
Connection: Close

eof;

socket_write($socket, $http, strlen($http));

while($str = socket_read($socket, 1024))
{
    echo $str;
}

socket_close($socket);

fsockopen方式:

$fp = fsockopen("www.baidu.com", 80, $errno, $errstr, 30);

if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {
    $out = "GET / HTTP/1.1\r\n";
    $out .= "Host: www.baidu.com\r\n";
    $out .= "Connection: Close\r\n\r\n";
    fwrite($fp, $http);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

原始socket方式:

$fp = stream_socket_client("tcp://www.baidu.com:80", $errno, $errstr, 30);
if (!$fp) {
    echo "$errstr ($errno)<br />\n";
} else {

    $http = <<<eof
GET / HTTP/1.0
Accept: */*
User-Agent: Lowell-Agent
Host: www.baidu.com
Connection: Close

eof;

    fwrite($fp, $http);
    while (!feof($fp)) {
        echo fgets($fp, 1024);
    }
    fclose($fp);
}
时间: 2024-10-12 23:32:15

socket 发送请求的相关文章

socket发送请求,协程

1.socket发送请求 1 #发送请求的方式 2 3 #方式一 4 import requests 5 6 ret = requests.get("https://www.baidu.com/s?wd=abc") 7 8 print(ret.text) 9 10 11 #方式二 12 13 import socket 14 15 client = socket.socket() 16 client.connect(("www.baidu.com",80)) 17

socket发送http请求

转自:思齐-socket发送http请求 socket方式: $socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); //socket_set_option($socket, SOL_SOCKET, SO_SNDTIMEO, array("sec"=>20, "usec"=>0)); socket_connect($socket, 'www.baidu.com', 80); //里面的换行代表 \r

c/c++ socket发送http请求访问网站

这几天课比较少,校园网上网要认证才能上网,每次必须输入学号密码,为了方便,写了一个自动登录以及如果在线,登录自服务系统强制下线的小工具. 强制下线思路:获取sessionID---------->获取验证码图片------------>AspriseOCRLib识别验证码--------------->MD5加密.url Encode---------------->登录自服务系统---------------->强制下线--------------------->退出

php 利用socket发送GET,POST请求

作为php程序员一定会接触http协议,也只有深入了解http协议,编程水平才会更进一步.最近我一直在学习php的关于http的编程,许多东西恍然大悟,受益匪浅.希望分享给大家.本文需要有一定http基础的开发者阅读. 今天给大家带来的是如何利用socket发送GET,POST请求.我借用燕十八老师封装好的一个Http类给进行说明. 在日常编程中相信很多人和我一样大部分时间是利用浏览器向服务器提出GET,POST请求,那么可否利用其它方式提出GET,POST请求呢?答案必然是肯定的.了解过HTT

使用socket发送http请求(GET/POST)

使用socket发送http请求(GET/POST) 下载LOFTER客户端 1.socket的原理 在相关文章中已经提及,不再赘述. 2.http头的格式 (1)请求行请求行由请求方法字段.URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔.例如,GET /index.html HTTP/1.1.HTTP协议的请求方法有GET.POST.HEAD.PUT.DELETE.OPTIONS.TRACE.CONNECT.这里介绍最常用的GET方法和POST方法.GET:当客户端要从服务器中读

Java中Socket在发送请求的时候要分清print()和println()

近期在开发中需要一个功能,向第三方服务器发送我方数据的功能,对数据的封装格式要求特别严格,在组装数据完成后,发送给第三方服务器却怎么也通不过,查找了好久,也对比了对方给出来的数据样本,还是不行,后来检查代码和拦截发送的数据后才发现,在socket发送的时候,使用的是println()方法,这个方法会自动在数据的后面加上一个回车符,所以在对比数据的时候没有发现,改为print()后顺利通过了~~~

HTTPS 客户端发送请求(一)

HTTPS 发送请求(一) 摘 要 JSSE是一个SSL和TLS的纯Java实现,通过JSSE可以很容易地编程实现对HTTPS站点的访问.但是,如果该站点的证书未经权威机构的验证,JSSE将拒绝信任该证书从而不能访问HTTPS站点.本文在简要介绍JSSE的基础上提出了两种解决该问题的方法. 引言 过去的十几年,网络上已经积累了大量的Web应用.如今,无论是整合原有的Web应用系统,还是进行新的Web开发,都要求通过编程来访问某些Web页面.传统的方法是使用Socket接口,但现在很多开发平台或工

Googel 浏览器 模拟发送请求工具--Advanced REST Client

Advanced REST Client是 Chrome 浏览器下的一个插件,通过它可以发送 http.https.WebSocket 请求.在 Chrome 商店下搜索 Advanced REST Client,即可找到 如果搜索不到的可到CSDN 下载: http://download.csdn.net/detail/li1669852599/9547748 1.下载插件:Advanced Rest Client 2.因为最新版的Chrome不支持本地安装插件,所以我们要使能开发者模式 3.

发送请求工具—Advanced REST Client

Advanced REST Client是Chrome浏览器下的一个插件,通过它能够发送http.https.WebSocket请求.在Chrome商店下搜索Advanced REST Client,就可以找到 Advanced REST Client的界面 Advanced REST Client在google code的地址:http://code.google.com/p/chrome-rest-client/ 以下来介绍Advanced REST Client发送请求的方法 1. 发送h