首页 > 解决方案 > 发送数据到 api

问题描述

我需要向 api 发送用户名和密码,但是无法连接,我在邮递员中尝试过,很好,我需要发送这样的 json

杰森

我有这个代码(抱歉是我第一次尝试向 api 发送数据)

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => 'http://192.168.0.2/apilocation',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => '',
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => true,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => 'POST',
  CURLOPT_POSTFIELDS =>'{
   "username" : "oswaldo",
    "password" : "1"
}',
  CURLOPT_HTTPHEADER => array(
    'Content-Type: application/json'
  ),
));

$response = curl_exec($curl);
        curl_setopt($response, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($response, CURLOPT_RETURNTRANSFER, true);
curl_setopt($response, CURLOPT_RETURNTRANSFER, TRUE);
        curl_close($curl);


var_dump($response);

但是返回错误:(,请帮忙

标签: phpapicurl

解决方案


我认为数据应该是这样的

CURLOPT_POSTFIELDS => json_encode(array("username" => "", "password" => ""))

您也可以尝试添加此标头

'accept: application/json',

也许是一种更清洁的方式

$ch = curl_init("http://192.168.0.2/apilocation");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode(array("username" => "", "password" => "")));
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json"));

$response = curl_exec($ch);
curl_close($ch);

var_dump($response);

推荐阅读