Stream postStream = GetPostDataAndUid(stream);
StreamReader sr = new StreamReader(postStream);
string s = sr.ReadToEnd();
sr.Dispose();
NameValueCollection qs = HttpUtility.ParseQueryString(s);
DownloadUserDto downloadDto = new DownloadUserDto();
downloadDto.account_id = qs["account_id"];
downloadDto.token_id = qs["token_id"];
downloadDto.limit_time = qs["limit_time"];
downloadDto.matching_id = qs["matching_id"];
s返回的值是:{"account_id":"YHLibrary02","limit_time":"12\/27\/2013 10:03:32 AM","matching_id":"YHmachUid02","token_id":"YHToken02"}
求解,为什么不能通过ParseQueryString(s)解析成键值对?
首先,回答为什么不能解析:因为你的数据不满足QueryString的字符串格式,正确的应该是"account_id=YHLibrary02&tt=1";
再者,你这个数据满足Json格式,建议用Json反序列化。常用Json组件:Json.Net(Newtonsoft.Json),FastJson,LitJson。
这个是json格式,建议用Json.NET进行解析
@dudu正解,Json.NET好方法。
DownloadUserDto downloadDto=JsonConvert.DeserializeObject<DownloadUserDto>(s);
这样直接调用应该就差不多了。