2012-01-24 4 views
2

私は外部APIとやりとりするアプリケーションを持っています。リモートサービスが特定のステータスを含むリクエストを投稿すると、そのURLの内容全体を外部URLを通じて別のアプリケーションに再送信する必要があります。

$ _REQUEST全体を取り出して再配置したり、$ _REQUESTを繰り返し実行したり、必要な場所に新しい配列を作成する必要がありますか?

+0

本当に$ _REQUESTが必要ですか?すべてのデータが投稿されたら、$ _POSTを取ることをお勧めします。 –

答えて

1

あなたは$ _POSTと$ _GETの値を区別する必要があります。

$ _REQUESTは、一つのキーが$ _REQUEST配列に救わ際の優先順位を持って$ _POSTから$ _POSTや$ _GET値を設定しておけば POSTをGETすることによって来ているすべての値を表します。

$ _GET経由で届くすべてのものをURLに追加し、$ _POSTからすべてをリクエスト本体に送信します。

3

$ _REQUESTは配列です。だから、あなたが必要な場所に投稿することができます。ただ、cURLの

1

両方segementsは、POSTメソッド

2

ている場合、私が正しくあなたの質問を理解していれば、あなたがCURLでそれを行うことができるしている、再エンコードのオーバーヘッドを保存することができ$HTTP_RAW_POST_DATAを使用する:

$ch = curl_init("http://sitename.com/"); 
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, "field1=value1&field2=value2"); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, false); 
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); 
    curl_setopt($ch, CURLOPT_HEADER, false); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 

「フィールド1

:= VALUE1 &フィールド2 = value2" のは、あなたは操作が完了したかの結果を得ることができるしている。また、あなたの引数で

を交換されます210

の後$ result = curl_exec($ ch);

$result_info = curl_getinfo($ch); 

$result_info['http_code']がHTTPコードに設定されています。それが200の場合はSUCCESSです(もちろん、コードが人為的に別のコードに設定されているなど、コードが異なる場合があります)

関連する問題