如何解决“ HTTP 406不可接受”尝试发送PDF转换为base64时 C#Xamarin
我正在使用到转换为base64的PDF的端点进行POST方法,但是我收到的是HTTP 406 CODE。我在主体中包含了mime类型的application / pdf,并且包括了接受我的POST请求所必需的标头,但我仍然收到406代码。 json主体在接收406代码时是否有任何连接,或者我的标头出现问题?有关终点和json主体的详细信息,请参见附件图像。
public class MyFile
{
[JsonProperty("mime")]
public string MimeType { get; set; }
[JsonProperty("data")]
public string Base64Data { get; set; }
}
public class PdfFile
{
[JsonProperty("file")]
public MyFile myFile { get; set; }
}
string pdfBase64;
const string pdfFileName = "file.pdf";
using (var pdfStream = await FileSystem.OpenAppPackageFileAsync(pdfFileName))
{
using (var pdfReader = new StreamReader(pdfStream))
{
var fileContents = await pdfReader.ReadToEndAsync();
pdfBase64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(fileContents));
}
}
var file = new MyFile();
var pdf = new PdfFile();
file.MimeType = "application/pdf";
file.Base64Data = "base64-data=" + pdfBase64;
pdf.myFile = file;
var jsonContent = JsonConvert.SerializeObject(pdf.myFile);
string baseUrl = "https://goodmorning-axa-dev.azure-api.net/upload";
HttpClient httpClient = new HttpClient();
httpClient.DefaultRequestHeaders
.Accept
.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
HttpRequestMessage requestMessage = new HttpRequestMessage(HttpMethod.Post,baseUrl);
requestMessage.Content = new StringContent(jsonContent,Encoding.UTF8,"application/json");
requestMessage.Headers.Add("x-axa-api-key",apiKey);
HttpResponseMessage responseMessage = await httpClient.SendAsync(requestMessage);
string responseAsstring = await responseMessage.Content.ReadAsstringAsync();
if (responseAsstring != null)
{
Console.WriteLine(responseAsstring);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。