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

使用RestSharp通过GET方法发送x-www-form-urlencoded参数异常求助

解决RestSharp调用GET API时参数未正确发送的问题

问题分析

你的API要求GET请求携带x-www-form-urlencoded格式的请求体(这虽不符合标准HTTP规范,但部分API会如此实现)。curl和Python requests默认支持在GET请求中发送请求体,但RestSharp默认会将GET请求的参数放到URL的QueryString中,不会写入请求体,这就是API提示参数未发送的核心原因。另外你原代码的URL中存在拼写错误:generId应为genreId,这也可能导致参数识别异常。

修正方案

以下两种方式均可让RestSharp在GET请求中正确发送x-www-form-urlencoded格式的请求体:

方案1:指定参数位置为请求体

var options = new RestClientOptions("https://domain.net.xyz") { MaxTimeout = -1 };
var client = new RestClient(options);
// 移除URL中的冗余参数,避免重复传递
var request = new RestRequest("/rsBillingApi/v2/soapbox/liveassets/genre", Method.Get);
request.AddHeader("x-access-token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUyNTE4LCJpYXQiOjE2OTkzNTEwOTYsImV4cCI6MTY5OTM1NDY5Nn0.xrvQZCRdQImwKtbnAeeRzhi2M9yW2W6RJR6xlU0hgts");
// 明确指定参数放入请求体,RestSharp会自动设置Content-Type为application/x-www-form-urlencoded
request.AddParameter("genreId", "3", ParameterType.RequestBody);
request.AddParameter("platformId", "1", ParameterType.RequestBody);

RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

方案2:直接构造请求体字符串

var options = new RestClientOptions("https://domain.net.xyz") { MaxTimeout = -1 };
var client = new RestClient(options);
var request = new RestRequest("/rsBillingApi/v2/soapbox/liveassets/genre", Method.Get);
request.AddHeader("x-access-token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUyNTE4LCJpYXQiOjE2OTkzNTEwOTYsImV4cCI6MTY5OTM1NDY5Nn0.xrvQZCRdQImwKtbnAeeRzhi2M9yW2W6RJR6xlU0hgts");
// 直接构造x-www-form-urlencoded格式的字符串并指定内容类型
request.AddStringBody("genreId=3&platformId=1", ContentType.FormUrlEncoded);

RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

关键注意事项

  • 必须显式指定参数位置为请求体,或直接构造请求体字符串,否则RestSharp会将GET请求的参数自动放入URL的QueryString中,无法被你的API识别。
  • 务必修正URL中的generId拼写错误为genreId,避免因参数名不匹配导致的异常。

内容的提问来源于stack exchange,提问作者Sachin Maharjan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 03:11:21