postman Restsharp在Get方法中发送x-urlen-body-encoded参数时出现问题

lnxxn5zx  于 7个月前  发布在  Postman
关注(0)|答案(1)|浏览(87)

我有一个API与获取方法,发送数据在x-urlen-body-encoded.在postman,curl它是工作正常,我们得到响应数据.在restsharp(C#)我遇到错误说,其中一个参数是不发送.

{
  MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/rsBillingApi/v2/soapbox/liveassets/genre?generId=3&platformId=1", Method.Get);
request.AddHeader("x-access-token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUyNTE4LCJpYXQiOjE2OTkzNTEwOTYsImV4cCI6MTY5OTM1NDY5Nn0.xrvQZCRdQImwKtbnAeeRzhi2M9yW2W6RJR6xlU0hgts");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("genreId", "3");
request.AddParameter("platformId", "1");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

个字符
有没有人可以建议我如何在restsharp中发送参数。
我也尝试了同样的API在Python中使用请求库,我得到了正确的结果。在Python中,它是使用genreId=3&platformId=1格式发送有效负载中的数据。我很困惑为什么这种奇怪的行为是

import requests

url = "https://domain.net.xyz/rsBillingApi/v2/soapbox/liveassets/genre?generId=3&platformId=1"

payload = 'genreId=3&platformId=1'
headers = {
  'x-access-token': 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUyNTE4LCJpYXQiOjE2OTkzNTEwOTYsImV4cCI6MTY5OTM1NDY5Nn0.xrvQZCRdQImwKtbnAeeRzhi2M9yW2W6RJR6xlU0hgts',
  'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

taor4pac

taor4pac1#

{
   MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/rsBillingApi/v2/soapbox/liveassets/genre? 
                  generId=3&platformId=1", Method.Get);
request.AddHeader("x-access-token", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MTUyNTE4LCJpYXQiOjE2OTkzNTEwOTYsImV4cCI6MTY5OTM1NDY5Nn0.xrvQZCRdQImwKtbnAeeRzhi2M9yW2W6RJR6xlU0hgts");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
 request.AddParameter("application/x-www-form-urlencoded", "generId=3&platformId=1", ParameterType.RequestBody)
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

字符串
这应该工作

相关问题