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

C# HttpClient调用API报InternalServerError 500:Postman正常代码异常

搞定MediaHound API的/graph/lookup端点GET请求

嘿,既然你已经把/search/all端点的请求在Postman和C#里都跑通了,那咱们来搞定/graph/lookup这个端点的请求吧!先回顾下你之前的可行代码:

var baseUri = new Uri("https://api.mediahound.com/1.3/search/all/");
using (var client = new HttpClient())
{
    var res = "";
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _oAuth2.Token);
    // 这里省略了Task相关的执行代码
}

/graph/lookup的特殊点在于参数是通过params=PARAMS_JSON传递的——也就是要把你的查询参数序列化成JSON字符串,再作为查询参数的值传进去。这里给你写个适配的C#代码示例:

// 第一步:按照API要求构造参数对象
var lookupParams = new
{
    // 替换成你实际需要的参数,比如媒体ID、要包含的关联数据等
    ids = new[] { "sample-media-id-123" },
    include = new[] { "related-content", "metadata" }
};

// 第二步:把参数序列化为JSON字符串(这里用Newtonsoft.Json,也可以用System.Text.Json)
var jsonParams = Newtonsoft.Json.JsonConvert.SerializeObject(lookupParams);
// 关键:对JSON字符串做URL编码,避免特殊字符破坏URL结构
var encodedParams = Uri.EscapeDataString(jsonParams);

var baseUri = new Uri("https://api.mediahound.com/1.3/graph/lookup");
using (var client = new HttpClient())
{
    // 同样要设置Bearer Token授权头
    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", _oAuth2.Token);
    
    // 拼接完整的请求URL
    var requestUri = new Uri($"{baseUri}?params={encodedParams}");
    
    // 发送请求并处理响应(记得用await异步执行)
    var response = await client.GetAsync(requestUri);
    // 确保请求成功,否则会抛出异常
    response.EnsureSuccessStatusCode();
    
    var res = await response.Content.ReadAsStringAsync();
    // 这里可以把res反序列化为你需要的实体对象
}

这里有几个要注意的点:

  • 一定要保证参数的JSON结构完全符合MediaHound API的文档要求,字段名、数据类型都不能错,不然会返回错误响应
  • 如果你的项目用的是System.Text.Json而不是Newtonsoft.Json,把序列化代码换成System.Text.Json.JsonSerializer.Serialize(lookupParams)就行
  • URL编码这一步不能省,JSON里的引号、大括号这些字符直接放在URL里会导致请求失败
  • 和第一个端点一样,要确保你的Bearer Token是有效的,不然会得到401未授权的响应

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:10:51