如何使用 C# 创建 JSON 发布到 api



我正在创建一个 C# 控制台应用程序,该应用程序从文本文件中读取文本,将其转换为 JSON 格式的字符串(保存在字符串变量中),并且需要将 JSON 请求发布到 Web API。我正在使用.NET Framework 4。

我的斗争是使用 C# 创建请求并获得响应。需要的基本代码是什么?代码中的注释会有所帮助。到目前为止,我得到的是以下内容,但我不确定我是否走在正确的轨道上。

//POST JSON REQUEST TO API
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("POST URL GOES HERE?");
request.Method = "POST";
request.ContentType = "application/json";
System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
byte[] bytes = encoding.GetBytes(jsonPOSTString);
request.ContentLength = bytes.Length;
using (Stream requestStream = request.GetRequestStream())
{
    // Send the data.
    requestStream.Write(bytes, 0, bytes.Length);
}
//RESPONSE HERE

你试过使用 WebClient 类吗?

您应该能够使用

string result = "";
using (var client = new WebClient())
{
    client.Headers[HttpRequestHeader.ContentType] = "application/json"; 
    result = client.UploadString(url, "POST", json);
}
Console.WriteLine(result);

文档位于

http://msdn.microsoft.com/en-us/library/system.net.webclient%28v=vs.110%29.aspx

http://msdn.microsoft.com/en-us/library/d0d3595k%28v=vs.110%29.aspx

尝试使用 Web API HttpClient

    static async Task RunAsync()
    {
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("http://domain.com/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            // HTTP POST
            var obj = new MyObject() { Str = "MyString"};
            response = await client.PostAsJsonAsync("POST URL GOES HERE?", obj );
            if (response.IsSuccessStatusCode)
            {
                response.//.. Contains the returned content.
            }
        }
    }

可在此处找到更多详细信息 Web API 客户端

相关内容

  • 没有找到相关文章

最新更新