C# RestSharp-post请求问题(操作失败)
我对RestSharp的post请求有问题。我有两门课:C# RestSharp-post请求问题(操作失败),c#,serialization,restsharp,C#,Serialization,Restsharp,我对RestSharp的post请求有问题。我有两门课: public class UnitToPost { public bool floating_point { get; set; } public Dictionary<string, TranslationUnitToPost> translations { get; set; } } public class Translat
public class UnitToPost
{
public bool floating_point { get; set; }
public Dictionary<string, TranslationUnitToPost> translations { get; set; }
}
public class TranslationUnitToPost
{
public string name { get; set; }
}
公共类单位成本
{
公共布尔浮点{get;set;}
公共词典翻译{get;set;}
}
公共类TranslationUnitToPost
{
公共字符串名称{get;set;}
}
我想随post请求一起发送:
client = new RestClient(adresApi);
client.AddDefaultHeader("Authorization", "Bearer " + key);
IRestRequest updateProduct = new RestRequest("units", Method.POST);
ShoperModel.UnitToPost unitToPost = new ShoperModel.UnitToPost();
unitToPost.floating_point = true;
ShoperModel.TranslationUnitToPost transUnit = new ShoperModel.TranslationUnitToPost();
transUnit.name = "namename";
unitToPost.translations = new Dictionary<string, ShoperModel.TranslationUnitToPost>();
unitToPost.translations.Add("pl_PL", transUnit);
updateProduct.RequestFormat = RestSharp.DataFormat.Json;
updateProduct.AddBody(unitToPost);
IRestResponse updateProductResponse = this.client.Execute(updateProduct);
client=新的RestClient(adresApi);
client.AddDefaultHeader(“授权”、“持有人”+密钥);
IRestRequest updateProduct=新的重新请求(“单位”,Method.POST);
ShoperModel.UnitToPost UnitToPost=新ShoperModel.UnitToPost();
unitToPost.floating_point=true;
ShoperModel.TranslationUnitToPost transUnit=新ShoperModel.TranslationUnitToPost();
transUnit.name=“namename”;
unitToPost.translations=新字典();
添加(“pl_pl”,transUnit);
updateProduct.RequestFormat=RestSharp.DataFormat.Json;
updateProduct.AddBody(unitToPost);
IRestResponse updateProductResponse=this.client.Execute(updateProduct);
我总是会出错:
[RestSharp.RestResponse]=“状态代码:InternalServerError,
内容类型:应用程序/json,内容长度:-1“
内容=
“{\”错误\“:\”服务器\错误\“,\”错误\描述\“:\”操作
失败\“}”
原因是什么?可能是因为我的类中有字典吗?我已经运行了您的代码,它发出了一个带有有效JSON正文的请求 POST HTTP/1.1 接受:application/json、application/xml、text/json、text/x-json、text/javascript、text/xml 授权:持票人a 用户代理:RestSharp/105.2.3.0 内容类型:application/json 主持人: 内容长度:84 接受编码:gzip,deflate 连接:保持活力 {“floating_point”:true,“translations”:[{“Key”:“pl_pl”,“Value”:{“name”:“namename”}}]} 看起来问题可能出在接收服务器上。如果您还没有这样做,我建议运行Fiddler()并检查请求/响应 编辑 我刚刚意识到您希望JSON主体是:- {“floating_point”:true,“translations”:{“pl_pl”:{“name”:“namename”}} 我确实发现了一个尖锐的问题,包括:- 这包括一篇文章,其中有人使用ExpandoObject获得了所需的结果 但是,我发现使用JSON.NET序列化并使用以下代码设置正文更容易:-
updateProduct.AddBody(JsonConvert.SerializeObject(unitToPost));