PHP:使用标题发布数据....无法正常工作

时间:2010-02-05 19:14:10

标签: php http-headers

简单脚本

<?php
$host = "mysite.com";
$path = "/test.php";
$data = "drivingMeCrazy";
$data = urlencode($data);

header("POST $path HTTP/1.1\r\n" );
header("Host: $host\r\n" );
header("Content-type: application/x-www-form-urlencoded; charset=utf-8\r\n" );
header("Content-length: " . strlen($data) . "\r\n" );
header("Connection: close\r\n\r\n" );
header($data);
?>

运行时,我的服务器只给了我内部错误。我需要做的只是.... POST。没有其他的。我不需要任何回复。

遵循此处的规范:http://www.sixapart.com/pronet/docs/trackback_spec

4 个答案:

答案 0 :(得分:2)

header function用于设置响应的标头。如果您想向其他服务器发出请求,请尝试cURL

答案 1 :(得分:2)

你正在寻找这样的东西:

$process = curl_init($host);                                                                         
curl_setopt($process, CURLOPT_HTTPHEADER, array('Content-Type: application/xml', $additionalHeaders));  //<-- update to reflect your content-type
curl_setopt($process, CURLOPT_HEADER, 1);                                                                           
curl_setopt($process, CURLOPT_USERPWD, $username . ":" . $password); // <-- you probably don't need that                                                
curl_setopt($process, CURLOPT_TIMEOUT, 30);                                                                         
curl_setopt($process, CURLOPT_POST, 1);                                                                             
curl_setopt($process, CURLOPT_POSTFIELDS, $payloadName);                                                            
curl_setopt($process, CURLOPT_RETURNTRANSFER, TRUE);                                                                
$return = curl_exec($process);  

答案 2 :(得分:1)

您无法使用header()将数据发送到第三方服务器。 header()只是将标头信息发送给向您的网络服务器发出请求的客户端。

查看cURL库,从服务器端PHP向第三方发起请求:

http://ca.php.net/manual/en/book.curl.php

我不能保证这个库,但它似乎是一个免费提供的Trackbacks for PHP实现:

http://sourceforge.net/projects/phptrackback/

答案 3 :(得分:0)

找到我在这里寻找的答案:

http://bytes.com/topic/php/answers/1211-doing-http-post

Curl会起作用。我只想在不同的平台上进行这项工作,所以我想找到最直接的方法。再次感谢。