簡體   English   中英

Rest API 使用 ZD7EFA19FBE7D3972FD5ADB6024223D74 發布 Json

[英]Rest API Post Json using C# with two parameters

我需要在 REST api 上執行 Post 請求,api 接受 Z0ECD11C1AD7A287402F8A14 數據類型。 我有兩個要包含的參數, startdateenddate 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();
            // ....
        }

這就是我如何通過一個如何設置 header 的示例來做到這一點的。

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM