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

POST API文件提交返回200但响应内容为空的问题排查

问题:API文件提交返回200但响应为空,Postman可正常调用
  • 调用API提交文件时,返回状态码200但响应内容为空
  • 改用RestSharp调用仍出现相同问题,但通过Postman发起请求可成功
  • checkStatus接口在C#代码中调用正常,仅文件提交环节存在异常

HttpClient实现代码

static async Task SubmitFileToRestApi(string apiUrl, string permitNumber, string securityKey, string remoteFileName, string localFileName)
{
    try
    {
        using (HttpClient httpClient = new HttpClient())
        using (var form = new MultipartFormDataContent())
        using (var fileStream = new FileStream(localFileName, FileMode.Open, FileAccess.Read))
        {
            form.Add(new StringContent("savenic"), "apicall");
            form.Add(new StringContent(permitNumber), "permit_nbr");
            form.Add(new StringContent(securityKey), "sec_key");
            form.Add(new StringContent(Path.GetFileName(localFileName)), "filename");

            var fileContent = new StreamContent(fileStream);
            fileContent.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/pdf");
            form.Add(fileContent, "file", Path.GetFileName(localFileName));

            // 日志记录请求内容
            Console.WriteLine("Request Content:");
            foreach (var content in form)
            {
                Console.WriteLine($"{content.Headers.ContentDisposition}");
            }

            var response = await httpClient.PostAsync(apiUrl, form);
            var responseContent = await response.Content.ReadAsStringAsync();

            // 日志记录响应状态和头部
            Console.WriteLine("Response Status: " + response.StatusCode);
            foreach (var header in response.Headers)
            {
                Console.WriteLine($"{header.Key}: {string.Join(", ", header.Value)}");
            }

            Console.WriteLine($"Response: {responseContent}");
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"提交文件时发生错误: {ex.Message}");
        if (ex.InnerException != null)
        {
            Console.WriteLine($"内部异常: {ex.InnerException.Message}");
        }
    }
}

RestSharp实现代码

static async Task SubmitFileToRestApi(string apiUrl, string permitNumber, string securityKey, string remoteFileName, string localFileName)
{
    // 绕过SSL证书验证(适用于自签名证书测试场景)
    ServicePointManager.ServerCertificateValidationCallback = delegate { return true; };

    var client = new RestClient(apiUrl);
    var request = new RestRequest("", Method.Post);

    request.AddParameter("apicall", "savenoc");
    request.AddParameter("permit_nbr", permitNumber);
    request.AddParameter("sec_key", securityKey);
    request.AddFile("file", localFileName, "application/pdf");
    request.AddParameter("filename", Path.GetFileName(localFileName));

    try
    {
        var response = await client.ExecuteAsync(request);

        // 日志记录响应详情
        Console.WriteLine("Response Status: " + response.StatusCode);
        Console.WriteLine("Response Content: " + response.Content);
        Console.WriteLine("Response Error Message: " + response.ErrorMessage);
        Console.WriteLine("Response Headers: ");
        foreach (var header in response.Headers)
        {
            Console.WriteLine($"{header.Name}: {header.Value}");
        }
    }
    catch (Exception ex)
    {
        Console.WriteLine($"提交文件时发生错误: {ex.Message}");
    }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 03:52:45