2017-09-25 128 views
1

大家好,我正在请求来自其他网站的数据,但我无法通过curl请求显示错误500,但是当我通过chrome RESTED扩展显示相同请求时输出curl请求工作在Rested铬扩展,但不是在PHP

$url = "XXXXXXXXXXX"; 

// what post fields? 
$fields = array(
    'roll_number' => '123456', 
'full_name' => 'aaaaaa', 
'mother_name' => 'bbbbbbb', 
'_token' => 'xxxxxxxxxxxxxxxx' 
); 

// build the urlencoded data 
$postvars = http_build_query($fields); 

// open connection 


      $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/x-www-form-urlencoded')); 
    curl_setopt($ch, CURLOPT_POST, 1); 
    curl_setopt($ch, CURLOPT_POSTFIELDS,$postvars); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $response = curl_exec($ch); 
    curl_close($ch); 

    echo $response; 

请求应通过邮寄方法和数据应该JSON编码或URL编码我都试过,但都没有他们的工作

回答

0

不知道这是否是原因,但应该不是你的HTTPHeader是application/json?此外,你不编码的数据作为JSON - 您可能需要更改$postvars = http_build_query($fields);$postvars = json_encode($fields);

我也想看看https://lornajane.net/posts/2011/posting-json-data-with-php-curl

+0

如果我将其更改为应用程序/ JSON和变化不工作$ postvars到json编码 –