php - 在 Laravel 中使用 Guzzle 发送 POST 请求

标签 php laravel guzzle

我正在尝试使用 ZohoMail 的 API 通过我的应用程序发送电子邮件。但它不断给我:

"{errorCode":"INVALID_METHOD"},"status":{"code":404,"description":"无效输入"}}

这是我尝试调用的电话的链接:https://www.zoho.com/mail/help/api/post-send-an-email.html#Request_Body

这是我的功能:

public static function sendEmail ($AccountId, $AuthCode, $FromAddress, $ToAddress, $Subject, $Content){

    $client = new Client(); //GuzzleHttp\Client
    $URI = 'http://mail.zoho.com/api/accounts/' . $AccountId . '/messages';
    $headers = ['Content-Type' => 'application/json', 'Authorization' => 'Zoho-authtoken ' . $AuthCode];
    $body = array('fromAddress' => $FromAddress, 'toAddress' => $ToAddress, 'subject' => $Subject, 'content' => $Content);
    $Nbody = json_encode($body);
    $response = $client->post($URI, $headers, $Nbody);
    echo "DONE!";

}

我尝试过改变调用电话的方式,但看起来这并不是问题所在。我已经在 PostMan 中测试了该调用,它工作正常,因此我调用电话的方式可能有问题。任何帮助将不胜感激。

最佳答案

您需要在同一数组中创建数据和 header 并作为第二个参数传递。像这样使用。

$client = new Client();
$URI = 'http://mail.zoho.com/api/accounts/'.$AccountId.'/messages';
$params['headers'] = ['Content-Type' => 'application/json', 'Authorization' => 'Zoho-authtoken ' . $AuthCode];
$params['form_params'] = array('fromAddress' => $FromAddress, 'toAddress' => $ToAddress, 'subject' => $Subject, 'content' => $Content);
$response = $client->post($URI, $params);
echo "DONE!";

祝你好运!

关于php - 在 Laravel 中使用 Guzzle 发送 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46652851/

相关文章:

php simplexml 在 xml 元素中带有点字符

php - 插入表后在mysql触发器中发送http请求

php - Laravel 中的表单操作

php - 使用 phpunit 进行 Laravel 测试

php - Goutte/Guzzle 代理不起作用

php - 学说顺序按注释。基于关联实体对实体关联进行排序。

PHP MySQL UPDATE 语句不工作

php - Twig "Unable to add function"

php - 如何使用 Kubernetes API 处理流响应?

php - 如何忽略 Guzzle 5 中的无效 SSL 证书错误