gpt4 book ai didi

c# - HttpWebRequest,如何使用 Application/JSON Content-Type 发送 POST 数据?

转载 作者:太空狗 更新时间:2023-10-29 21:55:33 26 4
gpt4 key购买 nike

HttpWebRequest request = (HttpWebRequest) HttpWebRequest.Create(url);request.Method = "POST";request.ContentType = "application/x-www-form-urlencoded; charset=utf-8";

已发送从 Yahoo 返回的 POST 数据(我使用 Fiddler 检查):

{"error":{"code":-1003,"detail":"不支持的内容类型错误","description":"不支持的内容类型错误"},"code":-1003}

我正在编写需要 application/json 的 Yahoo Messanger 客户端; charset=utf-8 作为内容类型,当我设置时:

request.ContentType = "application/json; charset=utf-8";

没有发送 POST 数据,从 Yahoo 返回:

{"error":{"code":-1005,"detail":"无效参数错误","description":"无效参数错误"},"code":-1005}

更新

我尝试通过 POST 方法发送这 2 个值:presenceStatestatus

Yahoo Messager IM API 中所述支持的content-typeapplication/json。在我的代码中,如果我将 content-type 设置为 application/jsonHttpWebRequest 不会通过 POST 发送这两个值。 p>

最佳答案

看看下面的例子

byte[] data = CreateData(value);
var requst = (HttpWebRequest) WebRequest.Create(uri);
requst.Method = "POST";
requst.ContentType = "application/json";
requst.ContentLength = data.Length;
using (Stream stream = requst.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}

CreateData 在哪里

public static byte[] Create<T>(T value)
{
var serializer = new DataContractJsonSerializer(typeof (T));
using (var stream = new MemoryStream())
{
serializer.WriteObject(stream, value);
return stream.ToArray();
}
}

关于c# - HttpWebRequest,如何使用 Application/JSON Content-Type 发送 POST 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325527/

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