You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Jira附件上传的Curl代码转换为Guzzle实现?

将Jira附件上传的Curl代码转换为Guzzle实现

以下是完全匹配原Curl逻辑的Guzzle版本代码:

use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
use Illuminate\Http\UploadedFile;

public function addAttachments(UploadedFile $file, string $key)
{
    $client = new Client();

    try {
        $response = $client->post('https://candidwebassets.atlassian.net/rest/api/3/issue/'.$key.'/attachments', [
            'headers' => [
                'X-Atlassian-Token' => 'no-check',
                'Accept' => 'application/json',
            ],
            'auth' => [
                env('JIRA_USER'),
                env('JIRA_SECRET')
            ],
            'multipart' => [
                [
                    'name' => 'file',
                    'filename' => $file->getClientOriginalName(),
                    'MIME-Type' => $file->getMimeType(),
                    'contents' => fopen($file->getPathname(), 'r')
                ]
            ]
        ]);

        // 可根据需求返回解析后的响应内容
        return json_decode($response->getBody(), true);
    } catch (RequestException $e) {
        throw new Exception($e->getMessage());
    }
}

转换关键点说明:

  • 文件上传:用Guzzle的multipart参数替代原Curl的CURLFile,直接读取上传文件的本地路径,同时指定文件名与MIME类型。
  • 身份认证:通过Guzzle内置的auth选项实现基础认证,替代原Curl手动拼接账号密码的写法,更简洁规范。
  • 请求头设置:直接通过headers数组配置对应请求头,完全匹配原Curl的请求头规则。
  • 异常处理:捕获Guzzle的RequestException来处理请求错误,替代原Curl的错误码判断逻辑。

内容的提问来源于stack exchange,提问作者Panda

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 00:05:13