Curl Post In Php

问题描述:

我正在解雇CURLPOST请求json数据,但其响应的内容类型仍为text/plain。 我哪里错了?Curl Post In Php

$data = array(
      "name" => "aaaaa", 
      "email" => "[email protected]", 
      "password" =>"aaa", 
      "gender" => "male", 
          ); 

$data1 = json_encode($data); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, "http://xxxx.xxx.xxx/register"); 
curl_setopt($ch, CURLOPT_HEADER, true); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json')); 
curl_setopt($ch, CURLOPT_POST, 1); 
curl_setopt($ch, CURLOPT_POSTFIELDS,$data1); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    $result = curl_exec($ch); 
    $last = curl_getinfo($ch); 
    print_r($result); 
    print_r($last); 

响应: -

Array 
(
    [url] => http://xxxx.xxx.xxx/register 
    [content_type] => text/plain 
    [http_code] => 403 
    [header_size] => 358 
    [request_size] => 277 
    [filetime] => -1 
    [ssl_verify_result] => 0 
    [redirect_count] => 0 
    [total_time] => 0.067338 
    [namelookup_time] => 2.2E-5 
    [connect_time] => 0.000448 
    [pretransfer_time] => 0.007352 
    [size_upload] => 161 
    [size_download] => 9 
    [speed_download] => 133 
    [speed_upload] => 2390 
    [download_content_length] => 9 
    [upload_content_length] => 161 
    [starttransfer_time] => 0.06731 
    [redirect_time] => 0 
    [redirect_url] => 

) 
+2

正在响应的页面未设置正确的MIME类型。你用JSON发送了一些东西,他们用纯文本回答。他们不必以相同的方式回应;)如果您张贴到您自己的脚本中,请检查您是否设置了正确的MIME类型。 – MueR

这是响应。所以这意味着服务器的响应是纯文本的。你的请求改为application/json。如果你想设置你自己脚本的MIME类型,你可以使用Header();