我正在尝试在laravel中发出一个http发布请求,如下所示
$client = new Client(['debug'=>true,'exceptions'=>false]);
$res = $client->request('POST', 'http://www.myservice.com/find_provider.php', [
'form_params' => [
'street'=> 'test',
'apt'=> '',
'zip'=> 'test',
'phone'=> 'test',
]
]);
它返回空响应。在调试时,发生以下异常
curl_setopt_array():无法将输出类型的流表示为STDIO FILE *
我正在使用最新版本的guzzle。
知道怎么解决吗?。
答案 0 :(得分:2)
request()方法返回 GuzzleHttp \ Psr7 \ Response 对象。 要获取服务返回的实际数据,您应该使用:
$data = $res->getBody()->getContents();
现在检查$ data中的内容以及它是否与预期输出相对应。
答案 1 :(得分:0)
我必须这样做
$data = $res->getBody()->getContents();<br>
but also change<br>
$client = new \GuzzleHttp\Client(['verify' => false, 'debug' => true]);<br>
to<br>
$client = new \GuzzleHttp\Client(['verify' => false]);
答案 2 :(得分:0)
这是我为我的短信API所做的
use Illuminate\Support\Facades\Http; // Use this on top
// Sample Code
$response = Http::asForm()
->withToken(env('SMS_AUTH_TOKEN'))
->withOptions([
'debug' => fopen('php://stderr', 'w') // Update This Line
])
->withHeaders([
'Cache-Control' => 'no-cache',
'Content-Type' => 'application/x-www-form-urlencoded',
])
->post($apiUrl,$request->except('_token'));