gpt4 book ai didi

c# - HttpRequestMessage POST

转载 作者:行者123 更新时间:2023-12-04 12:42:30 26 4
gpt4 key购买 nike

我正在尝试发送 json “样式”字符串通过 HttpResponseMessage .
我创建了以下方法,希望能够成功发送响应消息。

class Foo
{
/// <summary>
/// Vendors
/// </summary>
public enum Vendor
{
[Description("https://someSite.com")]
FOO = 0x001
}

/// <summary>
/// Send a POST response
/// </summary>
/// <param name="vendor"></param>
/// <param name="data"></param>
public static async void SendResponseAsync(Vendor vendor, string data)
{
Task task = Task.Run(async () =>
{
using (var httpClient = new HttpClient())
using (var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, vendor.EnumDescriptionToString()))
{
var json = Newtonsoft.Json.JsonConvert.DeserializeObject(data);
httpRequestMessage.Content = new StringContent(json.ToString(), Encoding.UTF8, "application/json");
var result = await httpClient.SendAsync(httpRequestMessage);
Console.WriteLine(result.ReasonPhrase);
}
});
await task;
}
}

我用以下方式调用它;
static void Main()
{
string jsonText = "{\"apikey\": \"someAPIkey\",\"type\": \"ItemRegistered\", \"order\": \"999999\", \"item\": \"99999\", \"datetime\": \"2018-10-12 01:27:11 GMT\"}";
Foo.SendResponseAsync(Foo.Vendor.FOO, jsonText);
Console.ReadKey();
}

我收到的错误是 400现在你可以说那是我的问题,确实你是对的,但是,我想知道为什么当我使用 PostMan 时我收到一个错误,说订单号无法识别? json 格式,所以我知道订单号不正确,但是,为什么它没有显示在我的控制台应用程序中?我的 POSTING 方法是否正确?

最佳答案

您应该将序列化的 json 表示传递到 StringContent。您json变量是 object 类型,当您调用 ToString() 时它为您提供了类类型之类的东西。如果您的 data已经是序列化的json,直接传过去。

或者,如果您有一个对象,请像这样传递它:

var content = new StringContent(JsonConvert.SerializeObject(obj), Encoding.UTF8, "application/json");

关于c# - HttpRequestMessage POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52774689/

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