Windows phone 7 wp7-使用RestSharp在请求正文中使用参数发布http请求
我试图通过请求将参数发布到一个返回JSON对象的服务。该服务在android和iOS上运行良好。我正在努力让这个工作的wp7。该服务要求内容类型为“application/json”,我在下面粘贴了设置http请求的代码:Windows phone 7 wp7-使用RestSharp在请求正文中使用参数发布http请求,windows-phone-7,restsharp,Windows Phone 7,Restsharp,我试图通过请求将参数发布到一个返回JSON对象的服务。该服务在android和iOS上运行良好。我正在努力让这个工作的wp7。该服务要求内容类型为“application/json”,我在下面粘贴了设置http请求的代码: var client = new RestClient(baseurl); var request = new RestRequest(); request.Resource = "login";
var client = new RestClient(baseurl);
var request = new RestRequest();
request.Resource = "login";
request.Method = Method.POST;
request.AddHeader("Accept", "application/json");
request.AddHeader("content-type", "application/json");
request.RequestFormat = DataFormat.Json;
var postData = new Dictionary<string, string>()
{
{"key1",value1},
{"key2",value2}
};
request.AddBody(postData);
client.ExecuteAsync(request, response =>
{
var jsonUser = response.Content;
});
var-client=newrestclient(baseurl);
var request=new RestRequest();
request.Resource=“login”;
request.Method=Method.POST;
AddHeader(“接受”、“应用程序/json”);
AddHeader(“内容类型”、“应用程序/json”);
request.RequestFormat=DataFormat.Json;
var postData=新字典()
{
{“key1”,value1},
{“key2”,value2}
};
请求.AddBody(postData);
client.ExecuteAsync(请求、响应=>
{
var jsonUser=response.Content;
});
我从服务器得到的响应错误是一个内部服务器错误。上面的代码有什么问题吗。我还尝试了request.AddParameter方法,但结果相同。其代码如下所示:
var client = new RestClient(baseurl);
var request = new RestRequest();
request.Resource = "login";
request.Method = Method.POST;
request.AddHeader("Accept", "application/json");
request.AddHeader("content-type", "application/json");
request.RequestFormat = DataFormat.Json;
var postData = new Dictionary<string, string>()
{
{"key1",value1},
{"key2",value2}
};
var json = JsonConvert.SerializeObject(postData);
request.AddParameter("application/json", json, ParameterType.RequestBody);
client.ExecuteAsync(request, response =>
{
var jsonUser = response.Content;
});
var-client=newrestclient(baseurl);
var request=new RestRequest();
request.Resource=“login”;
request.Method=Method.POST;
AddHeader(“接受”、“应用程序/json”);
AddHeader(“内容类型”、“应用程序/json”);
request.RequestFormat=DataFormat.Json;
var postData=新字典()
{
{“key1”,value1},
{“key2”,value2}
};
var json=JsonConvert.SerializeObject(postData);
AddParameter(“application/json”,json,ParameterType.RequestBody);
client.ExecuteAsync(请求、响应=>
{
var jsonUser=response.Content;
});
在这两种情况下,我都做错了什么吗 我觉得你的#1方法还可以。。。能否安装并打开Fiddler,打开模拟器(打开模拟器之前Fiddler必须运行),并检查请求是否正确?感谢Pedro的回复。我试试看。在我弄明白的时候。你能告诉我代码是request.AddParameter(“key1”,value1,ParameterType.GetOrPost”);AddParameter(“key2”,value2,ParameterType.GetOrPost);做同样的事情。与中一样,它是否将参数作为HTTP请求体的一部分发送。我不想将参数作为查询字符串发送。谢谢。使用它将在帖子中获得您的值,而不是作为查询字符串,但如果您需要的话,它不会被JSON编码!尝试
request.AddParameter(“json”,json)代码>谢谢各位..它与request.AddParameter(“key1”,value1,ParameterType.GetOrPost)一起工作;服务正在寻找它,但没有json编码。正是这种联系让我找到了正确的解决方案。而且Fiddler也不能很好地与Windows emulator配合使用。可能需要一些设置才能使用模拟器。但是WireShark工作得很好。感谢佩德罗和德里克的回复。