Rest API Post Json 使用带有两个参数的 C#
Posted
技术标签:
【中文标题】Rest API Post Json 使用带有两个参数的 C#【英文标题】:Rest API Post Json using C# with two parameters 【发布时间】:2021-05-06 16:45:49 【问题描述】:我需要在 REST api 上执行 Post 请求,该 api 接受 JSON 数据类型。我要包含两个参数,startdate 和 enddate。 C#中的任何指南?我收到错误(415)不支持的媒体类型。我相信这是因为我的帖子请求没有正确的 json 正文
var request = WebRequest.Create(url) as HttpWebRequest;
request.Method = "POST";
request.Headers.Add(HttpRequestHeader.Authorization, "Bearer xxx");
request.ContentType = "application/json; charset=utf-8";
// Get response here
var response = request.GetResponse() as HttpWebResponse;
if (response.StatusCode == HttpStatusCode.OK)
Console.WriteLine(response.ToString());
Console.ReadKey();
// ....
【问题讨论】:
【参考方案1】:这是我如何设置标题的示例。
using Newtonsoft.Json;
// e.g. update a user's email address via REST POST
dynamic user = new JObject();
user.Email = "testuser@test.com";
var json = user.ToString();
// json is then
// "Email":"testuser@test.com"
// and the json is POSTed to the appropriate REST url
var client = new HttpClient
Timeout = TimeSpan.FromSeconds(10)
;
client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
client.DefaultRequestHeaders.Add("User-Agent", "user agent name");
var request = GetRequestMessage(uri, accessToken, json);
var response = await client.SendAsync(request);
var content = await response.Content.ReadAsStringAsync();
private HttpRequestMessage GetRequestMessage(string uri, string accessToken, string jsonPayload)
var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, uri)
Headers = "Authorization", $"Bearer accessToken"
;
httpRequestMessage.Content = new StringContent(jsonPayload, Encoding.UTF8, "application/json");
return httpRequestMessage;
【讨论】:
client.SendAsync(request);这个客户端是httpclient? 谢谢@codebrane,请澄清下面的变量json var request = GetRequestMessage(uri, accessToken, json); json 是您发送 JSON 时发送的内容。我添加了一个示例以上是关于Rest API Post Json 使用带有两个参数的 C#的主要内容,如果未能解决你的问题,请参考以下文章
使用 alamofire 将带有 JSON 对象和查询参数的 POST 请求发送到 REST Web 服务
REST API:请求正文为 JSON 或纯 POST 数据?