JSON和CURL问题

时间:2017-05-16 19:54:30

标签: php json api curl

世界!我的API脚本与OLX有些麻烦。请有人帮帮我吗?

我正在制作一个返回此内容的JSON:

{
 "access_token": "7b1cb35b4eca28be89174d75baf66e00d2728bf6",
     "ad_list": [ 
        { 
           "id": "31dasa1d23", 
           "operation": "insert", 
           "category": 1040, 
           "subject": "Título teste - Anúncio OLX - Marília/SP", 
           "body": "Imóvel com Sala, Copa, Cozinha planejada e Gabinete, 3 Dormitórios sendo 1 suíte, Lavanderia com Área de Serviço Coberta, Espaço Gourmet com Churrasqueira e Chuveirão para Ducha, Garagem para 2 Carros, Cerca Elétrica e Interfone. Confira mais sobre o imóvel: http://www.silvioimoveis.com.br/imovel-residencial-professor-antonio-da-silva-penteado-marilia-sp-venda/principal/imovel/principal/5394", 
           "phone": 1433333333, 
           "type": "s", 
           "price": 260000, 
           "zipcode": "17504000", 
           "params":{ 
                "rooms": "3", 
                "garage_spaces": "2" 
           }, 
           "images": [           
                "http://homologacao.silvioimoveis.com.br/fotos/imoveis_internos/5394/2175ea284f81f03.jpg",                                 
                "http://homologacao.silvioimoveis.com.br/fotos/imoveis_internos/5394/bb0ff30ac2bcbae.jpg"
           ] 
        }
      ]
}

我创建这个JSON的代码是:

$json = '{
        "access_token": "'.$data['access_token'].'",
        "ad_list": [
                {
                    "id": "'.$jsonGerado[0]['id'].'",
                    "operation": "'.$jsonGerado[0]['operation'].'",
                    "category": '.$jsonGerado[0]['category'].',
                    "subject": "'.$jsonGerado[0]['subject'].'",
                    "body": "'.$jsonGerado[0]['body'].'",
                    "phone": '.$jsonGerado[0]['phone'].',
                    "type": "'.$jsonGerado[0]['type'].'",
                    "price": '.$jsonGerado[0]['price'].',
                    "zipcode": "'.$jsonGerado[0]['zipcode'].'",
                    "params": {
                        "rooms": "'.$jsonGerado[0]['params']['rooms'].'",
                        "garage_spaces": "'.$jsonGerado[0]['params']['garage_spaces'].'"
                    },
                    "images": [
                        '.$jsonGerado[0]['images']['linkFotoPrincipal'].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][0].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][1].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][2].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][3].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][4].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][5].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][6].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][7].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][8].',
                        '.$jsonGerado[0]['images']['linkDemaisFotos'][9].'
                    ]
                }
        ]
    }';

CURL代码是:

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://apps.olx.com.br/autoupload/import",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 30,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "PUT",
  CURLOPT_POSTFIELDS => $json
));

最后,错误是:

当我在$ json变量中不使用json_encode()时,我得到“找到NULL值...”而不是“找到字符串值”

1 个答案:

答案 0 :(得分:3)

正如RiggsFolly所提到的,在PHP数组或对象上使用$querystr = " SELECT $wpdb->posts.* FROM $wpdb->posts, $wpdb->postmeta WHERE $wpdb->posts.ID NOT IN $current_id AND $wpdb->posts.ID = $wpdb->postmeta.post_id AND ($wpdb->postmeta.meta_author = $author_id OR $wpdb->postmeta.meta_category_ID IN $categories) AND $wpdb->posts.post_status = 'publish' AND $wpdb->posts.post_type = 'post' ORDER BY $wpdb->posts.post_date DESC LIMIT 3 "; $pageposts = $wpdb->get_results($querystr, OBJECT); 而不是自己构建JSON。以下是您使用示例代码执行此操作的示例:

json_encode

然后你可以$json_array = array( "access_token" => $data['access_token'], "ad_list" => array( array( "id" => $jsonGerado[0]['id'], "operation" => $jsonGerado[0]['operation'], "category" => $jsonGerado[0]['category'], "subject" => $jsonGerado[0]['subject'], "body" => $jsonGerado[0]['body'], "phone" => $jsonGerado[0]['phone'], "type" => $jsonGerado[0]['type'], "price" => $jsonGerado[0]['price'], "zipcode" => $jsonGerado[0]['zipcode'], "params" => array( "rooms" => $jsonGerado[0]['params']['rooms'], "garage_spaces" => $jsonGerado[0]['params']['garage_spaces'] ), "images" => array( $jsonGerado[0]['images']['linkFotoPrincipal'], $jsonGerado[0]['images']['linkDemaisFotos'][0], $jsonGerado[0]['images']['linkDemaisFotos'][1], $jsonGerado[0]['images']['linkDemaisFotos'][2], $jsonGerado[0]['images']['linkDemaisFotos'][3], $jsonGerado[0]['images']['linkDemaisFotos'][4], $jsonGerado[0]['images']['linkDemaisFotos'][5], $jsonGerado[0]['images']['linkDemaisFotos'][6], $jsonGerado[0]['images']['linkDemaisFotos'][7], $jsonGerado[0]['images']['linkDemaisFotos'][8], $jsonGerado[0]['images']['linkDemaisFotos'][9] ) ) ) ); 。我希望有所帮助!