2012-01-05 9 views
0
$returnurl = "http://clietsite.com:9000/service"; 
    $curlPost = "rtyinstance=<parent><child>value</child></parent>"; 
    $ch1 = curl_init(); 
    if (!$ch1) die("Couldn't initialize a cURL handle"); 
    $headerinfo = apache_request_headers(); 
    curl_setopt($ch1, CURLOPT_URL, $returnurl); 
    curl_setopt($ch1, CURLOPT_HEADER, 0); 
    curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch1, CURLOPT_POST, true); 
    curl_setopt($ch1, CURLOPT_POSTFIELDS, $curlPost); 
    curl_setopt($ch1, CURLOPT_FRESH_CONNECT, 1); 
    curl_setopt($ch1, CURLOPT_USERAGENT, $headerinfo['User-Agent']); 
    curl_setopt($ch1, CURLOPT_TIMEOUT,1*60); 
    $result = curl_exec($ch1); 
    var_dump($result); 
    echo $responseCode = curl_getinfo($ch1, CURLINFO_HTTP_CODE); 
    curl_close($ch1); 

上記のコードはresponseCode 200、var dump prints string(0) ""を返します。 CURL PHPでの実行

私はブラウザで実行

成功したXMLを返し
http://clietsite.com:9000/service?instance=<parent><child>value</child></parent> 

のように(私はPHPバージョン5.2.17を使用しています)。何が問題なのか分かりません。これを解決するのを手伝ってください。

+0

そのサービスに送信する入力が期待される形式であることを再確認してください。おそらくあなたはポスト値のエンコーディングに対処する必要がないので、おそらく '' CURLOPT_POSTFIELDS'(http://php.net/curl_setopt)のために ''配列 ''を使いたいかもしれません。 – hakre

+0

私は配列を定義しました$ postArray = array(); $ postArray ['rtyinstance'] = $ currentXML; curl_setopt($ ch1、CURLOPT_POSTFIELDS、$ postArray)のように使用します。 – Arasu

+0

でも空を返します – Arasu

答えて

0

あなたはPOSTを使用していますが、ブラウザではGETを発行しています。

これは問題の可能性があります。

このコードを使用し、GETする '改宗' に:

$encoded_params = urlencode('<parent><child>value</child></parent>'); 
$returnurl = "http://clietsite.com:9000/service?rtyinstance=" . $encoded_params; 
$ch1 = curl_init(); 
if (!$ch1) die("Couldn't initialize a cURL handle"); 
$headerinfo = apache_request_headers(); 
curl_setopt($ch1, CURLOPT_URL, $returnurl); 
curl_setopt($ch1, CURLOPT_HEADER, 0); 
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch1, CURLOPT_FRESH_CONNECT, 1); 
curl_setopt($ch1, CURLOPT_USERAGENT, $headerinfo['User-Agent']); 
curl_setopt($ch1, CURLOPT_TIMEOUT,1*60); 
$result = curl_exec($ch1); 
var_dump($result); 
echo $responseCode = curl_getinfo($ch1, CURLINFO_HTTP_CODE); 
curl_close($ch1); 
+0

私はカール – Arasu

+0

@Arasu入るフィールドとして渡すか、どのように返します-switch-from-post-to-in-php-curl) –

+1

を更新(http://stackoverflow.com/questions/1225409/how-to:しかし、空 – hakre

-1

次のURLは私のために使用できません。

http://clietsite.com:9000/service?rtyinstance=<parent><child>value</child></parent> 

は、お使いのコンピュータ/ネットワークの外から本当に接近できるサイトですか?あるサーバーでスクリプトをホストし、別のサーバーでWebサイトをホスティングしている場合は、動作しない可能性があります。

+0

サンプルサイト名とポート番号 – Arasu

+0

を指定しました申し訳ありませんが、あなたの質問からはっきりしませんでした。 – Magnus

関連する問題