php请求接口问题

请问通过postman的form-data方式,还设置Content type为application/json这种接口的访问,通过php应该怎么请求呢,我接口经验比较少,打扰大家帮忙看一下

php请求接口问题

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

postman有个功能,点一下那个生成代码,可以直接生成php代码

1年前 评论
dustFF (楼主) 1年前
讨论数量: 12
$url = 'http://example.com/api';
$data = array('key1' => 'value1', 'key2' => 'value2');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));

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

var_dump($response);
1年前 评论
dustFF (楼主) 1年前

postman有个功能,点一下那个生成代码,可以直接生成php代码

1年前 评论
dustFF (楼主) 1年前
DogLoML

可以试试apifox,国产版postman,一键生成php,java,python等请求代码,可以先定义接口,生成laravel的api控制器

1年前 评论

form-data 一般是上传文件使用, 普通的就用application/json 就行

1年前 评论
dustFF (楼主) 1年前

传json,应该要用 这个

file

1年前 评论

如果你使用的guzzle包,参看文档:
https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html#multipart

1年前 评论

大概要的是这种方式吧,表单提交,表单的data存的数据是json格式的数据

$url = 'http://example.com/api';
$data = array('key1' => 'value1', 'key2' => 'value2');

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, ["data" => json_encode($data)];
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: multipart/form-data'));

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

var_dump($response);
1年前 评论

你没必要这么搞。完全可以请求的时候,直接塞一个 json 进来。然后在php这一块的话。用

json_decode(file_get_contents('php://input'), true);

来解析 json。

注意要判断 $_SERVER 中的 Content-Type 是否是 json。不过,如果是用框架的话,一般都不需要处理这些的,框架都给你做好了。

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!