C# 415(不支持的媒体类型)角度API调用
尝试调用API GET调用时,我收到不支持的媒体类型错误 以下是后端代码:C# 415(不支持的媒体类型)角度API调用,c#,angular,asp.net-web-api,C#,Angular,Asp.net Web Api,尝试调用API GET调用时,我收到不支持的媒体类型错误 以下是后端代码: public async Task<JObject> GetSummonerData(GetSummonerDataDto getMatch) { string username = getMatch.Username; HttpClient client = new HttpClient(); client.DefaultRequestHead
public async Task<JObject> GetSummonerData(GetSummonerDataDto getMatch)
{
string username = getMatch.Username;
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
string url="https://na1.api.riotgames.com/lol/summoner/v4/summoners/by-name/" +username;
client.DefaultRequestHeaders.Add("X-Riot-Token", _riotToken);
HttpResponseMessage response = await client.GetAsync(url);
response.EnsureSuccessStatusCode();
var body = await response.Content.ReadAsStringAsync();
JObject json = JObject.Parse(body);
return json;
}
现在,当我进行这个特定的调用时,我立即收到HTTP415错误。但是,我有另一个GET函数,这个函数实际上是多次调用getcallerdata
后端,并且正在工作
getSummonerDataMultiple() {
return this.http.get(this.baseUrl + 'getsummonerdatamultiple');
以下是上述角度代码的后端代码:
public async Task<JArray> GetSummonerDataMultiple()
{
string[] players = {"twokdavey", "jimlan", "captainwalrus69", "pynkcoffee"};
JArray SummonersData= new JArray();
foreach(var player in players)
{
var user = await GetSummonerData(new GetSummonerDataDto{Username = player});
if(user != null){
SummonersData.Add(user);
}
}
return SummonersData;
}
对于我的角度部分,我甚至将参数硬编码为{'username':'tankthebeast'}
。我已经成功地使用了涉及DTO的其他函数,但尽管我回到代码中,我没有看到任何差异。前面的问题建议添加Content-Type
HTTP头,如我的第一部分所述,但错误包括
我的问题最大的亮点是我的标题在浏览器中显示application/problem+jso
n,我找不到更多信息
最后一条信息。邮递员显示所有功能。这是一个我自己无法解决的角度问题。经验法则:使用HTTP GET时不要发送
内容类型
HTTP头
Content-Type
HTTP头通知服务器请求的主体。在HTTP的情况下得到你没有身体
更多信息请访问。您的API支持JSON吗?@jess是的,支持。
public async Task<JArray> GetSummonerDataMultiple()
{
string[] players = {"twokdavey", "jimlan", "captainwalrus69", "pynkcoffee"};
JArray SummonersData= new JArray();
foreach(var player in players)
{
var user = await GetSummonerData(new GetSummonerDataDto{Username = player});
if(user != null){
SummonersData.Add(user);
}
}
return SummonersData;
}
public string Username {get; set;}