php - 如何使用正文和标头制作 GuzzleHttp 发布请求?
问题描述
我无法理解如何将其修改cURL
为 Laravel 5.8,以获得{"code":"11", "message":"invalid Request found", "status":"DECLINED"}
响应。
这是我cURL
工作正常的代码(在邮递员和浏览器中):
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.hylo.biz/Api/v1.0/Payment',
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 => '{
"orderId":"KJDHKSGIU768",
"amount":"100",
"redirect_url":"google.com"
}',
CURLOPT_HTTPHEADER => [
'Authorization: Basic WUR1pYQ1hYY3U2Og2OGM6JJE5tWEDJhJDEwZReVE=',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
这是我的laravel代码:
public function process(Request $request)
{
// return $request['request'];
$client = new \GuzzleHttp\Client();
$url = "https://api.hylo.biz/Api/v1.0/Payment";
$response = $client->request('POST', $url, [
'headers' => [
'Authorization' => 'Basic WUR1pYQ1hYY3U2Og2OGM6JJE5tWEDJhJDEwZReVE=',
'Content-Type' => 'application/json'
],
'form_params' => $request['request']
]);
return $response = $response->getBody();
}
解决方案
以这种方式它正在工作
public function process(Request $request)
{
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => 'https://api.hylo.biz/Api/v1.0/Payment',
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 => '{
"orderId":"KJDHKSGIU768",
"amount":"100",
"redirect_url":"google.com"
}',
CURLOPT_HTTPHEADER => [
'Authorization: Basic WUR1pYQ1hYY3U2Og2OGM6JJE5tWEDJhJDEwZReVE=',
'Content-Type: application/json',
],
]);
$response = curl_exec($curl);
curl_close($curl);
}
而且我忘了添加
use Illuminate\Http\Request;
推荐阅读
- django - 在 Django 中,如果用户知道组密码,我如何让用户加入组?
- perl - 如何在 Perl Socket 模块中增加 sndbuf/rcvbuf 大小的套接字选项?
- java - 当 JAXBElement 值为 null 时,将 JAXB 注释的 PoJo 转换为 Json 时排除 null 属性
- winappdriver - WinAppDriver 不适用于侧面加载的通用应用程序
- vba - 设置框架语句中的类型不匹配
- sql-server - 重置 SSMS 的对象资源管理器详细信息的排序顺序
- python - 如何在 Pandas 数据框中命名列和索引?
- c# - datagrid customsorting BindingListCollectionView 输入 ListCollectionView 错误
- c++ - “ ans += (a[i] - ans * r > 0); ”是什么意思,其中 ans,r 是整数, a[i] 是数组元素?
- python - 当函数退出范围时,函数内部的 subprocess.Popen 调用是否会被垃圾收集?