Php 向web服务发出POST请求

Php 向web服务发出POST请求,php,http,post,Php,Http,Post,简单地说,我需要使用php脚本向web服务发出POST请求。问题是服务器上的php版本是4.4.x,而curl被禁用。您知道我如何拨打电话并读取响应吗?您有权访问PEAR http\u请求吗?您有权访问PEAR http\u请求吗?您可以使用,并且,根据流上下文创建页面上的示例: $context = stream_context_create(array( 'http' => array ( 'method' => 'GET' ) )); $fp =

简单地说,我需要使用php脚本向web服务发出POST请求。问题是服务器上的php版本是4.4.x,而curl被禁用。您知道我如何拨打电话并读取响应吗?

您有权访问PEAR http\u请求吗?

您有权访问PEAR http\u请求吗?

您可以使用,并且,根据
流上下文创建
页面上的示例:

$context = stream_context_create(array(
    'http' => array (
        'method' => 'GET'
    )
));
$fp = fopen ('http://www.example.com', 'r', $context);
$text = '';
while (!feof($fp)) {
    $text .= fread($fp, 8192);
}

fclose($fp);
此外,请参阅和,以查看您可以设置的选项。

您可以使用和,如
流\u上下文\u创建
页面上的示例所示:

$context = stream_context_create(array(
    'http' => array (
        'method' => 'GET'
    )
));
$fp = fopen ('http://www.example.com', 'r', $context);
$text = '';
while (!feof($fp)) {
    $text .= fread($fp, 8192);
}

fclose($fp);

另外,请参阅和以查看您可以设置的选项。

您基本上可以使用socket(fsockopen)和fput,如下所示:

$port = 80;
$server = "domain.com";
$valuesInPost = 'param=value&ahah=ohoho';
$lengthOfThePost = strlen($valuesInPost);

if($fsock = fsockopen($server, $port, $errno, $errstr)){
    fputs($fsock, "POST /path/to/resource HTTP/1.1 \r\n");
    fputs($fsock,"Host: $server \r\n");
    fputs($fsock,"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13 \r\n");
    fputs($fsock,"Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 \r\n");
    fputs($fsock,"Keep-Alive: 115 \r\n");
    fputs($fsock,"Connection: keep-alive\r\n");
    fputs($fsock,"Referer: http://refererYou.want\r\n");
    fputs($fsock,"Content-Type: application/x-www-form-urlencoded\r\n");
    fputs($fsock,"Content-Length: $lengthOfThePost\r\n\r\n");
    fputs($fsock,"$valuesInPost\r\n\r\n");
    $pcontent = "";

    // results
    while (!feof($fsock))
        $pcontent .= fgets($fsock, 1024);

   // echoes response
   echo $pcontent;
}
由于类似的重写,可能会出现一些语法错误


注意,您可以使用所需的端口。

您基本上可以使用套接字(fsockopen)和FPUT,如下所示:

$port = 80;
$server = "domain.com";
$valuesInPost = 'param=value&ahah=ohoho';
$lengthOfThePost = strlen($valuesInPost);

if($fsock = fsockopen($server, $port, $errno, $errstr)){
    fputs($fsock, "POST /path/to/resource HTTP/1.1 \r\n");
    fputs($fsock,"Host: $server \r\n");
    fputs($fsock,"User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13 \r\n");
    fputs($fsock,"Accept-Language: fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3 \r\n");
    fputs($fsock,"Keep-Alive: 115 \r\n");
    fputs($fsock,"Connection: keep-alive\r\n");
    fputs($fsock,"Referer: http://refererYou.want\r\n");
    fputs($fsock,"Content-Type: application/x-www-form-urlencoded\r\n");
    fputs($fsock,"Content-Length: $lengthOfThePost\r\n\r\n");
    fputs($fsock,"$valuesInPost\r\n\r\n");
    $pcontent = "";

    // results
    while (!feof($fsock))
        $pcontent .= fgets($fsock, 1024);

   // echoes response
   echo $pcontent;
}
由于类似的重写,可能会出现一些语法错误


注意,您可以使用所需的端口。

如果这是一个选项:(不在我的掌握之中。欢迎来到企业界:)如果这是一个选项:(不在我的掌握之中。欢迎来到企业界:)