gpt4 book ai didi

C# Web API 在 HTTP Post REST 客户端中发送正文数据

转载 作者:太空狗 更新时间:2023-10-29 20:40:59 30 4
gpt4 key购买 nike

我需要发送这个 HTTP Post 请求:

 POST https://webapi.com/baseurl/login
Content-Type: application/json

{"Password":"password",
"AppVersion":"1",
"AppComments":"",
"UserName":"username",
"AppKey":"dakey"
}

就像上面一样,它在 RestClient 和 PostMan 中工作得很好。

我需要在语法上有这个,但不确定是否要使用

WebClient、HTTPRequest 或 WebRequest 来完成此操作。

问题是如何格式化正文内容并将其与请求一起发送。

这是我使用 WebClient 示例代码的地方...

  private static void Main(string[] args)
{
RunPostAsync();
}

static HttpClient client = new HttpClient();

private static void RunPostAsync(){

client.DefaultRequestHeaders.Accept.Clear();
client.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/json"));

Inputs inputs = new Inputs();

inputs.Password = "pw";
inputs.AppVersion = "apv";
inputs.AppComments = "apc";
inputs.UserName = "user";
inputs.AppKey = "apk";


var res = client.PostAsync("https://baseuriplus", new StringContent(JsonConvert.SerializeObject(inputs)));

try
{
res.Result.EnsureSuccessStatusCode();

Console.WriteLine("Response " + res.Result.Content.ReadAsStringAsync().Result + Environment.NewLine);

}
catch (Exception ex)
{
Console.WriteLine("Error " + res + " Error " +
ex.ToString());
}

Console.WriteLine("Response: {0}", result);
}

public class Inputs
{
public string Password;
public string AppVersion;
public string AppComments;
public string UserName;
public string AppKey;
}

这现在可以工作,并使用 (200) OK 服务器和响应进行响应

最佳答案

为什么要生成自己的 json?

使用 JsonNewtonsoft 的 JSONConvert

您的 json 对象字符串值需要 "" 引号和 ,

我会使用 http 客户端进行发布,而不是 webclient。

using (var client = new HttpClient())
{
var res = client.PostAsync("YOUR URL",
new StringContent(JsonConvert.SerializeObject(
new { OBJECT DEF HERE },
Encoding.UTF8, "application/json")
);

try
{
res.Result.EnsureSuccessStatusCode();
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
}

关于C# Web API 在 HTTP Post REST 客户端中发送正文数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50458507/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com