RestSharp从我的UWP应用程序的用户输入字段
中添加json主体,用户可以在文本字段中输入一个json主体,并通过restsharp可移植将其设置为POST Rest-Request中的主体。RestSharp从我的UWP应用程序的用户输入字段
所以用户键入到这一个文本框(值绑定到requestBody):
{ "string": "Hello World"}
,然后我的字符串添加到请求:
request.AddParameter("application/json; charset=utf-8", requestBody, ParameterType.RequestBody);
加入的身体,但不正确。 服务器不解析传入的json主体。
我不知道问题出在哪里,但我认为某些字符没有正确编码。
有没有人管理它以这种方式添加一个json主体?
此解决方案:
var b = JsonConvert.DeserializeObject<Object>(requestBody);
request.AddJsonBody(b);
但that's不干净的方式代码
例已为我工作:
var client = new RestClient("http://localhost");
var request = new RestRequest("pathtoservice", Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("application/json", "{ \"Some\": \"Data\" }", ParameterType.RequestBody);
var result = client.Execute(request);
为了完整起见,当使用RestSharp便携式以上将是:
var client = new RestClient("http://localhost");
var request = new RestRequest("pathtoservice", Method.POST);
var requestBody = Encoding.UTF8.GetBytes("{ \"Some\": \"Data\" }");
request.AddParameter("application/json; charset=utf-8", requestBody, ParameterType.RequestBody);
var result = client.Execute(request);
在restsharp.portable库中,RestRequest类没有成员RequestFormat –
Aha,并不知道你使用的是.NET Core/Portable(虽然它是在问题的标题中)。 也许可以尝试UTF-8编码身体: 'var someBody = Encoding.UTF8.GetBytes(requestBody);'并在AddParameter方法中使用它。 –
工作原理: var someBody = Encoding.UTF8.GetBytes(requestBody); request.AddParameter(“application/json; charset = utf-8”,someBody,ParameterType.RequestBody);谢谢 –
什么是完整的请求定义?你还添加了'request.RequestFormat = DataFormat.Json;'? –
RestRequest类没有成员RequestFormat –
你可以通过整个代码吗? –