【问题标题】:POST csv file httpclient C# and application/x-www-form-urlencodedPOST csv 文件 httpclient C# 和 application/x-www-form-urlencoded
【发布时间】:2018-11-17 07:48:52
【问题描述】:

我正在尝试对 c# 控制台应用程序执行一个有效的邮递员 POST 调用,它给了我:禁止 403。 它正在调用 API 并且正在上传 CSV 文件。 这是邮递员的工作电话:

我正在尝试几种选择。我已经获得了此代码的 403 禁止:

    HttpClient c = new HttpClient();
    var fileContent = new ByteArrayContent(System.IO.File.ReadAllBytes(@"C:\test7.csv"));
    fileContent.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
    {
        FileName = "test7.csv"
    };
    fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/csv");

      var parameters = new Dictionary<string, string>
    {
        { "secret", "mypassword" }
    };

    HttpContent DictionaryItems = new FormUrlEncodedContent(parameters);

    MultipartContent content = new MultipartContent();
    //content.Add(formData);
    content.Add(DictionaryItems);
    content.Add(fileContent);
    c.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/x-www-form-urlencoded"));
    var resultado = c.PostAsync("https://www.apiurl,com", content).Result;

我认为我没有将秘密(密码)放在正确的位置。 有什么帮助吗?

【问题讨论】:

  • 只是一个疯狂的猜测 - 你的服务器上有身份验证吗?如果是这样,您如何在请求中处理它?
  • 谢谢,我有答案了。往下看

标签: c# post file-upload console-application postman


【解决方案1】:

我已经得到了答案。这里:

        FileStream stream = File.OpenRead(@"C:\test7.csv");
        byte[] fileBytes = new byte[stream.Length];
        stream.Read(fileBytes, 0, fileBytes.Length);
        stream.Close();
        var byteArrayContent = new ByteArrayContent(fileBytes);
        byteArrayContent.Headers.ContentType = MediaTypeHeaderValue.Parse("text/csv");
        HttpClient httpClient = new HttpClient();
        MultipartFormDataContent form = new MultipartFormDataContent();

        form.Add(new StringContent("mypassword"), "secret");
        form.Add(byteArrayContent, "file", "testT.csv");
        HttpResponseMessage response = httpClient.PostAsync("https://www.apiurl.com", form).Result;
        httpClient.Dispose();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    • 2020-09-06
    • 2017-09-11
    • 2017-08-26
    相关资源
    最近更新 更多