2009-06-10 7 views
0

HIを送信されているものとは異なる受信などHTTPポストヘッダは、私は私のPHPスクリプトで、いくつかのヘッダを送信するためにトリングだ

$headers[] = "BATCH_TYPE: XML_SINGLE"; 
$headers[] = "VENDOR_ID: 56309"; 

しかし、彼らのように受信されている:

バッチ式 ベンダーID

..私の問題の原因となっているものではありません。

誰かがなぜ、どのようにソートするかを知っていますか?

おかげで、

<?php 

function httpsPost($Url, $xml_data, $headers) 
{ 
    // Initialisation 
    $ch=curl_init(); 
    // Set parameters 
    curl_setopt($ch, CURLOPT_FORBID_REUSE, 1); 
    curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
    curl_setopt($ch, CURLOPT_URL, $Url); 
    // Return a variable instead of posting it directly 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_USERPWD,"username:password"); 

    // Activate the POST method 
    curl_setopt($ch, CURLOPT_POST, 1) ; 
    // Request 
    curl_setopt($ch, CURLOPT_POSTFIELDS, $xml_data); 
    curl_setopt($ch, CURLOPT_TIMEOUT, 999); 

    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0); 

    // execute the connexion 
    $result = curl_exec($ch); 
    // Close it 
    curl_close($ch); 
    return $result; 
} 

$request_file = "./post_this.xml"; 
$fh = fopen($request_file, 'r'); 
$xml_data = fread($fh, filesize($request_file)); 

fclose($fh);  

$url = 'http://www.xhaus.com/headers'; 

$headers = array(); 
$headers[] = "Expect:"; 
$headers[] = "Accept: text/xml"; 

$headers[] = "BATCH_TYPE: XML_SINGLE"; 
$headers[] = "BATCH_COUNT: 1"; 
$headers[] = "VENDOR_ID: 54367"; 


$Response = httpsPost($url, $xml_data, $headers); 

echo $Response; 

?> 
+0

どうやってヘッダーを送っていますか? header()コマンドでは?現時点では、配列にヘッダーを追加するだけです。 コードを表示して、助けてもらえます:) – Jrgns

+0

今すぐ申し訳ありません。 – thegunner

+0

$ xml_data = "TEST";それがうまくいくと私は何を意味するのか見えます。 – thegunner

答えて

0

:これに

curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 

:これはすでに

0

はどのようにこれらのヘッダをチェックしていますか?

<?php 

header("BATCH_TYPE: XML_SINGLE"); 

そして、次の戻った: - - :

HTTP/1.1 200 OK 
Date: Wed, 10 Jun 2009 08:56:54 GMT 
Server: Apache/2.2.11 (Ubuntu) PHP/5.2.6-3ubuntu4.1 with Suhosin-Patch 
X-Powered-By: PHP/5.2.6-3ubuntu4.1 
BATCH_TYPE: XML_SINGLE 
Vary: Accept-Encoding 
Content-Length: 0 
Content-Type: text/html 
+0

こんにちは、私はwww.xhaus.com/headersのウェブサイトと、接続しようとしている外部サーバーからのエラーログを使用しています。 – thegunner

+0

私はあなたが別の応答を得るでしょうヘッダーを投稿すると思います... – thegunner

0

使用fsockopen()と手動で必要なものを書き込み/読み出しを私は次のコードで自分を試してみました。あなたのCURLやsmthの実装がわからないのですが。そうでなければ、プロキシはあなたのヘッダーを変更しません。あなたが確かに何か良いことをしたいのなら - 自分でやってください;)。実際には

$req = "POST $url HTTP/1.0\n"; 
$headers[] = 'VENDOR_ID: 1234'; 
$headers[] = 'MY_OTHER_HEADER: xxxxx'; 
$req .= implode("\n", $headers); 
$req .= "\n\n" . $request_body; 

$sock = fsockopen($host, 80, $errno, $errstr, $timeout); 
fwrite($sock, $req, strlen($req)); 

$return = ''; 
do 
{ 
    $return .= fread($sock, 512); 
} while (!feof($sock)); 

fclose($sock); 

わからない... HTTPリクエストを作成して、開いたソケットに書き込むので簡単だが、それはそのなめらか、私には思えます。この外部サーバの会社と戦っの週間後

foreach($headers as $header) 
    curl_setopt($ch, CURLOPT_HTTPHEADER, $header); 
0

変更...どこかPEARに次のコードを実行されているように、彼らは実際に私に間違ったヘッダーを与えていた - D'oh!

+0

これは動作しません。 foreach($ヘッダは$ヘッダ){ \t \tである必要があります。curl_setopt($ ch、CURLOPT_HTTPHEADER、array($ header)); \t} ..でも、配列の最後の要素だけが送信されます.... – thegunner

関連する問題