上传文件并转换为 Base64406 错误不可接受

问题描述

在这里要做的是将转换后的 pdf 到 base64 发送到一个端点,其中这是端点

HTTP-HEADERS:

api-key: your-key

Content-Type: application/json

 

Request Body JSON

{

"file": 
      {
        "mime": "application/pdf","data": "base64-data="
       }
}

这是我上传和转换我的文件方法


 public async Task UploadFile()
        {
            
            FileData fileData = await CrossFilePicker.Current.PickFile();
            if (fileData == null)
                return; //user canceled selecting image

            string fileName = fileData.FileName;
            string contents = Encoding.UTF8.GetString(fileData.DataArray);
            var stream = fileData.GetStream();
            var bytes = new byte[stream.Length];
            await stream.ReadAsync(bytes,(int)stream.Length);
            string base64 = Convert.ToBase64String(bytes);

            File ru = new File();
            ru.mime = "application/pdf";
            ru.data = "base64-data="+base64;


string url = "ENDPOINT URL";
            HttpClient client = new HttpClient();
            client.DefaultRequestHeaders
                .Accept
                .Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

            string jsonData = JsonConvert.SerializeObject(ru);
            HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post,url);
            requestMessage.Content = new StringContent(jsonData,Encoding.UTF8,"application/json");
            requestMessage.Headers.Add("api-key","API KEY HERE");
            requestMessage.Headers.Add("Accept-Encoding","gzip");
            HttpResponseMessage response = await client.SendAsync(requestMessage);
            string result = await response.Content.ReadAsstringAsync();
            if(result!= null)
            {
                resultLabel = result;
            }

现在它给了我错误

{"Message":"HTTP 406 不可接受。您的请求出错。请检查您的负载,然后重试,","Result":406}

解决方法

按照@Jason 在评论部分的建议,我解决了我的问题

https://learning.postman.com/docs/sending-requests/generate-code-snippets/

希望这能解决和我有同样问题的人。