如果我从我的自托管webapi返回
Request.CreateResponse(HttpStatusCode.OK, "YAY");一切都很好..所以我可以这样读:
var responseStr = await Client.Content.ReadAsAsync<string>();
and then make something like "MessageBox.Show(responseStr);如果我回来了
Request.CreateErrorResponse(HttpStatusCode.NotFound, "something went wrong!");我也是这样读出来的,甚至是这样读出来的(不管怎么读):
Client.Content.ReadAsStringAsync();字符串未反序列化,在尝试解析/读取为字符串时出现错误。
如果我把它作为对象来读..很好..。但是我不能执行object.ToString();我得到了错误。
为什么?以及如何修复它?
发布于 2014-10-25 23:08:06
我发现在返回的JSON中有额外的'\‘和'"’。
因此,在序列化回对象之前,我需要删除多余的字符。
例如:
string jsonString = httpResponseMessage.Content.ReadAsStringAsync()
.Result
.Replace("\\", "")
.Trim(new char[1] { '"' });
List<VwAisItemMaster> vwAisItemMasterList = JsonConvert.DeserializeObject<List<VwAisItemMaster>>(jsonString);发布于 2014-11-05 06:05:16
更好的解决方案是在webapi方法中创建响应时解决这个问题。注意CreateResponse方法中的类型。
IList<VwItemMaster> vwItemMasterList = this.itemMastersGetByUpc(unitOfWork, upc);
HttpResponseMessage httpResponseMessage = this.Request.CreateResponse<IList<VwItemMaster>>(HttpStatusCode.OK, vwItemMasterList);
httpResponseMessage.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");https://stackoverflow.com/questions/21906161
复制相似问题