我们目前有一个通用的MVC方法,它可以从ASP.NET Web获取数据
public static T Get<T>(string apiURI, object p)
{
using (HttpClient client = new HttpClient())
{
client.BaseAddress = new Uri(Config.API_BaseSite);
HttpResponseMessage response = client.GetAsync(apiURI).Result;
// Check that response was successful or throw exception
if (response.IsSuccessStatusCode == false)
{
string responseBody = response.Content.ReadAsStringAsync().Result;
throw new HttpException((int)response.StatusCode, responseBody);
}
T res = response.Content.ReadAsAsync<T>().Result;
return (T)res;
}
}我们的问题是:-很明显,我们不能像你发邮件那样发送'p‘,
client.PostAsync(apiURI, new StringContent(p.ToString(), Encoding.UTF8, "application/json")但是,我们如何使用get发送这个对象/ JSON。我们已经看到将其作为URL的一部分发送,但是,还有其他的选择吗?
发布于 2014-03-19 12:16:59
get 发送带有查询字符串( URL的末尾)的值,关于“但是我们如何使用get发送这个对象/ JSON,但是我们已经看到了将它作为URL的一部分发送,但是,还有其他的选择吗?”
另一种选择是POST或PUT。
当用户创建键/url时,最好使用PUT。您可以查看一些例子,如cnn.com -其中的URL只是文章标题的简短版本。你想在那个网址上放一页。
示例:t2
有"five-things-to-know-for-your-new-day-wednesday-march-19-2014",的网址,它是从“你的新年五件事--2014年3月19日星期三”的文章标题中生成的。
一般来说,您应该遵循以下指导方针:
当您想从服务器获取数据时,请使用GET。想想搜索引擎吧。您可以在查询字符串中看到搜索查询。你也可以预订,标记它。它根本不会改变服务器上的任何东西。
如果要创建资源,请使用POST。
当您想要创建资源时,请使用PUT,但它也会覆盖它们。如果将对象放置两次,则服务器状态只更改一次。职位的情况正好相反。
当您想要删除内容时使用删除
无论是POST还是PUT都不使用查询字符串。得了吧
https://stackoverflow.com/questions/22505022
复制相似问题