当前位置: 首页 > 知识库问答 >
问题:

无法通过api发送json数据[重复]

周和歌
2023-03-14

我正在使用一个外部api,在这里我得到了与该api相关的以下详细信息

API KEY (Mandatory Header) :- apikey : "xxxxx"
Stage Server Base Url :- https://example.com
To add Details API :- POST(/student/{student_id})

我计划做的是:

我将通过codeigniter表单从用户收集数据,然后将数据转发到上述api,并从api获得响应,因此,如果成功,则将执行进一步的操作,否则需要显示错误消息

然而,出于测试目的,我使用了一个静态数组,并试图将其发送到api。

实际上发生的是,我得到了一个空白的结果,所以不确定它是否有效。

下面是我的代码

<?php
$apiKey = 'xxxx';
$url = 'https://www.example.com';
$data = array("name"=> "ABC","location"=> "loc","class"=> 'tenth',"area"=> "area");

$ch = curl_init( $url );
$payload = json_encode( $data );
curl_setopt( $ch, CURLOPT_POSTFIELDS, $payload );
$headers= curl_setopt( $ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json','Authorization: ' . $apiKey));
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$result = curl_exec($ch);
curl_close($ch);
echo "<pre>$result</pre>";

?>

PS:我对api和curl还不熟悉,所以在解决方案中稍加解释将不胜感激

共有2个答案

强阳曜
2023-03-14

你应该使用如下语句

curl_setopt($ch, CURLOPT_POSTFIELDS,http_build_query($data));
华君浩
2023-03-14
$ch = curl_init('http://www.example.com');                                                                      
curl_setopt($ch, CURLOPT_CUSTOMREQUEST,'POST');                                                                     
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);                                                                  
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);                                                                      
curl_setopt($ch, CURLOPT_HTTPHEADER, array(                                                                          
    'Content-Type: application/json',                                                                                
    'Accept: application/json',                                                                                
    'Authorization:Basic '.$apikey,
    )                                                                       
);                                                                                                                  
$result = json_decode(curl_exec($ch));

尝试在授权标头中添加其基本或承载。希望对你有用。

 类似资料:
  • 我正在开发一个查看器应用程序,其中服务器捕获图像,执行一些图像处理操作,这需要在客户端显示在HTML5画布上。我写的服务器是在VC和使用http://www.codeproject.com/Articles/371188/A-Cplusplus-Websocket-server-for-realtime-interact. 到目前为止,我已经实现了所需的功能。现在我需要做的就是优化。引用是一个用来

  • 问题内容: 我想知道是否可以在POST请求中直接发送一个数组(未包装在字典中)。显然,该参数应获取以下内容的映射:[String:AnyObject]?但我希望能够发送以下示例json: 问题答案: 您可以使用JSON进行编码,然后自行构建。例如,在Swift 3中:

  • 问题内容: 我有一个内置的javascript,它可以执行以下操作:通过ajax-> php-> sql获取内容,并在单击内容后在index.php上显示它,将显示新内容。 现在,我想拥有一个在将内容单击到php之后发送数据的函数,该函数将在db中执行某些操作。如何创建将发送数据的功能?谢谢! 这是我的显示内容的代码: }); }` 问题答案: 您可以通过在jQuery.ajax 设置中包含值,将

  • 本文向大家介绍JavaScript 通过POST发送和接收JSON数据,包括了JavaScript 通过POST发送和接收JSON数据的使用技巧和注意事项,需要的朋友参考一下 示例 6 提取请求承诺最初将返回Response对象。它们将提供响应头信息,但它们不直接包含响应主体,而响应主体可能尚未加载。可以使用诸如Response对象上的方法来等待响应主体加载,然后对其进行解析。.json()

  • 我试着做一个简单的服务器-客户机套接字通信,但服务器似乎无法正常工作。无论何时发送或接收,我都会收到此错误: 非插座上的插座操作:非插座上的插座操作 奇怪的是,这只会在服务器发送时出现。客户似乎还可以:

  • 所以我试图通过ajax将图像作为一个blob发送。blob的类型正确,大小约为4.5 kb。我试着这样发送: 接收页面看起来像这样: 它告诉我找不到索引“图像”。所以不仅数据没有发送,甚至索引也被省略了。我做错了什么? 编辑: toBlob和toDataURL都不会产生任何东西,只是一个空的PNG。有没有办法将数据从帧缓冲区转换成Base64编码的jpg或png?