PHP: отправлять данные с заголовками .... не работает - PullRequest
0 голосов
/ 05 февраля 2010

Простой скрипт

<?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);
?>

При запуске мой сервер просто выдает мне Внутреннюю ошибку. Все, что мне нужно сделать, это просто .... ПОСТ. Ничего больше. Мне не нужен ответ или что-нибудь.

следующие спецификации здесь: http://www.sixapart.com/pronet/docs/trackback_spec.

Ответы [ 4 ]

2 голосов
/ 05 февраля 2010

Вы ищете что-то вроде этого:

$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 голосов
/ 05 февраля 2010

Функция header предназначена для установки заголовка ответа. Если вы хотите сделать запрос на другой сервер, попробуйте cURL .

1 голос
/ 05 февраля 2010

Вы не можете использовать header() для отправки данных на сторонний сервер. header() просто отправляет информацию заголовка клиенту, отправляющему запрос на ваш веб-сервер.

Загляните в библиотеку cURL для инициации запросов сторонних разработчиков с вашего PHP-сервера:

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

Я не могу поручиться за эту библиотеку, но она является свободно доступной реализацией трекбэков для PHP:

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

0 голосов
/ 05 февраля 2010

Нашел ответ, который искал здесь:

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

Керл бы сработал. Я просто хотел сделать эту работу на другой платформе, поэтому я хотел найти самый прямой путь. Еще раз спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...