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

使用FhirClient创建Binary资源时触发UnsupportedMediaType错误求助

问题原因及解决办法

核心问题

你遇到的UnsupportedMediaType错误,大概率是因为FhirClient发送请求时的HTTP Content-Type头设置错误,和Postman的正确请求头不匹配。

虽然你用binary.ToJson()输出的内容在Postman里能正常提交,但Postman会正确设置请求头(比如application/fhir+json),而FhirClient在处理Binary资源时,可能犯了两个常见错误:

  • 默认使用XML格式发送请求,而服务器只接受JSON格式
  • 错误地将Binary资源的contentType字段值(也就是application/pdf)当成了HTTP请求的Content-Type头,而服务器期望的是FHIR资源本身的媒体类型(比如application/fhir+json)

具体解决步骤

1. 初始化FhirClient时指定JSON格式

确保客户端默认用JSON格式发送资源:

var clientSettings = new FhirClientSettings
{
    PreferredFormat = ResourceFormat.Json
};
var fhirClient = new FhirClient("你的FHIR服务器地址", clientSettings);

2. 强制覆盖请求头(针对服务器对Binary资源的特殊要求)

如果上面的设置无效,直接拦截请求并手动设置正确的Content-Type:

fhirClient.OnBeforeRequest += (sender, e) =>
{
    // 明确设置请求头为FHIR JSON格式
    e.RawRequest.ContentType = "application/fhir+json; charset=utf-8";
};

3. 验证请求内容

可以通过FhirClient的日志功能(或抓包工具)确认发送的请求头和内容,对比Postman的请求,确保两者的Content-Type和请求体完全一致。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 00:11:06