2017-10-16 48 views
0

中添加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不干净的方式代码

+0

什么是完整的请求定义?你还添加了'request.RequestFormat = DataFormat.Json;'? –

+0

RestRequest类没有成员RequestFormat –

+0

你可以通过整个代码吗? –

回答

1

例已为我工作:

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); 
+0

在restsharp.portable库中,RestRequest类没有成员RequestFormat –

+0

Aha,并不知道你使用的是.NET Core/Portable(虽然它是在问题的标题中)。 也许可以尝试UTF-8编码身体: 'var someBody = Encoding.UTF8.GetBytes(requestBody);'并在AddParameter方法中使用它。 –

+0

工作原理: var someBody = Encoding.UTF8.GetBytes(requestBody); request.AddParameter(“application/json; charset = utf-8”,someBody,ParameterType.RequestBody);谢谢 –

相关问题