【问题标题】:Transform CURL to Http facade laravel将 CURL 转换为 Http 门面 laravel
【发布时间】:2021-08-30 18:38:45
【问题描述】:

我有这个代码:

$httpParams = [
    'textData'  =>  $content,
    'xmlFile'   =>  new \CurlFile($params['file']->getPathName())
];
$curlHandle = curl_init('http://url.com');
curl_setopt($curlHandle, CURLOPT_HEADER, false);
curl_setopt($curlHandle, CURLOPT_POST, true);
curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $httpParams);
curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, true);
$curlResponse = curl_exec($curlHandle);
curl_close($curlHandle);
dump($curlResponse);die();

我在$curlResponse 中有回复,状态 = 200

但是当我尝试使用来自 laravel 的 Http 时:

$http = Http::asForm();
$httpParams = [
    'textData'  =>  $content,
    'xmlFile'   =>  new \CurlFile($params['file']->getPathName())
];
$response = $http->send('post', 'http://url.com', $httpParams)->body();
dump($response);

响应为空:""。状态是 200。你能帮我吗,为什么使用 Http 门面我有空响应?提前谢谢。请帮帮我!!!

【问题讨论】:

标签: laravel curl laravel-5


【解决方案1】:

您可以在单独的类中编写可重用的方法

public function apiCall($url, $method = "get",$data=[])
{
   $htppCall = Http::withHeaders([
            'Content-Type' => 'application/json',
     ])->{$method}($url,$data);
      
    if ($htppCall->status() == 401) {
        //error handling
    }


        return $htppCall->object();
}

然后这样调用

$httpParams = [
    'textData'  =>  $content,
    'xmlFile'   =>  new \CurlFile($params['file']->getPathName())
];
$response=$this->apiCall($url,'post',$httpParams);

dd($response);

导入右门面

use Illuminate\Support\Facades\Http;

检查你得到了什么状态码

$htppCall->status()

获取数据作为对象

$htppCall->object()

以数组形式获取数据

$htppCall->json()

检查客户端错误

$htppCall->clientError()

检查服务器错误

$htppCall->serverError()

获取响应的正文。

 $htppCall->body()

如果有任何问题,请在评论中告诉我

【讨论】:

  • 谢谢,但我有一个问题,所以使用 Http 门面,API 在正文中返回:This is NOT a multipart/form-dataCurl 我没有消息 :(
  • 你能显示该请求的确切输出吗
  • <Error message="This is NOT a multipart/form-data" code="110"/>
  • 尝试将标头作为 json 删除一次
  • 比调试难猜。 :)
猜你喜欢
  • 2019-08-17
  • 2017-04-27
  • 2021-09-08
  • 2016-08-04
  • 2022-07-29
  • 1970-01-01
  • 2021-12-05
  • 1970-01-01
  • 2020-05-01
相关资源
最近更新 更多