2011-02-23 31 views
0

我有以下JSON代碼:發佈JSON到URL中使用PHP捲曲

{ 「用戶名」: 「用戶1」, 「密碼」: 「123456」}

,我需要傳遞給一個網址,讓說:http://api.mywebsite.com

我是一個極端的PHP福利局,所以我一直在下面捲曲的教程,但這裏是我當前的PHP代碼:

<?php 

function get_web_page($url) 
{ 
    $options = array(
     CURLOPT_RETURNTRANSFER => true,  // return web page 
     CURLOPT_HEADER   => true, // don't return headers 
     CURLOPT_FOLLOWLOCATION => true,  // follow redirects 
     CURLOPT_ENCODING  => "",  // handle compressed 
     CURLOPT_USERAGENT  => "spider", // who am i 
     CURLOPT_AUTOREFERER => true,  // set referer on redirect 
     CURLOPT_CONNECTTIMEOUT => 120,  // timeout on connect 
     CURLOPT_TIMEOUT  => 120,  // timeout on response 
     CURLOPT_MAXREDIRS  => 10,  // stop after 10 redirects 
    ); 

    $ch  = curl_init($url); 
    curl_setopt_array($ch, $options); 
    $content = curl_exec($ch); 
    $err  = curl_errno($ch); 
    $errmsg = curl_error($ch); 
    $header = curl_getinfo($ch); 
    curl_close($ch); 

    $header['errno'] = $err; 
    $header['errmsg'] = $errmsg; 
    $header['content'] = $content; 
    return $header; 

} 

?> 

回答

1

你可能要考慮的CURLOPT_POSTFIELDS和CURLOPT_POS T選項。這些允許您執行POST請求並將數據集傳遞到請求中的CURLOPT_POSTFIELDS。

東西在這行:

$body = 'bar=1&foo=2&baz=3'; 
$c = curl_init ($url); 
curl_setopt ($c, CURLOPT_POST, true); 
curl_setopt ($c, CURLOPT_POSTFIELDS, $body); 
curl_setopt ($c, CURLOPT_RETURNTRANSFER, true); 
0

當你想使用正常GET PARAMS:

$jsonString ='{"username":"user1","password":"123456"}'; 
$params = json_decode($jsonString); 

$getParams = ''; 
$first = true; 
foreach ($params as $key => $param){ 
    if ($first){ 
     $getParams .= '?'; 
     $first = false; 
    } else{ 
     $getParams .= '&'; 
    } 

    $getParams .= $key .'=' .$param; 
} 

echo $getParams; 
get_web_page($url . $getParams);