我需要以这种格式发布一个对象:
POST https://link
{
"country": "nld",
"emailaddress": "email@domain.com",
"phone": "123",
"notify_url": "https://asd.com"
}
我试过:
var url = "URL";
var httpRequest = (HttpWebRequest)WebRequest.Create(url);
httpRequest.Accept = "*/*";
httpRequest.Headers["Authorization"] = "Bearer " + apiKey;
var postData = "country" + Uri.EscapeDataString("hello");
postData += "emailaddress" + Uri.EscapeDataString("world");
postData += "phone" + Uri.EscapeDataString("123");
postData += "notify_url" + Uri.EscapeDataString("d3wq");
var data = Encoding.ASCII.GetBytes(postData);
httpRequest.Method = "POST";
httpRequest.ContentType = "application/x-www-form-urlencoded";
httpRequest.ContentLength = data.Length;
using (var stream = httpRequest.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
HttpWebResponse httpResponse = null;
try
{
httpResponse = (HttpWebResponse)httpRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
}
catch (Exception e) { }
但是服务器返回了一个错误的请求。我认为数据的格式无效。
如何更改代码以将数据转换为正确的格式?
谢谢你!
创建需要在webrequest上提交的对象。
var xObject = new { xData = ... };
在那次使用之后;
var newJsonData = JsonSerializer.Serialize(xObject);
NewJsonData是一个JSON格式的字符串,您可以将其发布到您的网络请求中。
您显示的示例请求显示了一个JSON请求体,但您在HttpWebRequest中告诉服务器,传入的内容类型将是一个表单post。但是,您不发布表单post,而是发布一个长字符串:
countryhelloemailaddressworldphone123 // and so on
不要在2021使用HTTPWebRestQuest.这是一个已有20年历史的API,到目前为止,它已经有了更多对开发人员友好的替代方案。
改用HttpClient,它具有发送和接收JSON的方便(扩展)方法:
var postModel = new
{
country = "...",
emailaddress = "...",
...
};
var client = new HttpClient();
var response = await client.PostAsJsonAsync(postModel);
您需要安装Microsoft。AspNet。WebApi。客户端
NuGet该扩展方法的包。
如果您坚持必须使用HttpWebRequest
,我对此深表怀疑,那么您的问题将在如何使用C#向服务器发布JSON中得到回答?,这个问题和答案展示了如何使用那个古老的API。
问题内容: 我正在尝试将JSON发布到WCF服务。json对象包含一个数组。我想知道如何正确绑定到我的数据合同。如果有人可以在这里给我指点,我将不胜感激。目前,我的购物车对象为null 我的服务界面如下所示: 我的客户电话如下 客户电话 我的JSON看起来像这样 问题答案: Fiddler对WCF REST方法的原始请求应如下所示: JSON中的响应如下所示:
这就是我如何尝试使用RestTemplate调用服务器, 这就是我如何使用它(用于测试) 我的登录响应类及其子类, null null null null 公共类BaseResponse{ 受保护字符串StatusCode; 我的问题是,1。为什么调用服务器时会出现此错误 信息:org.springframework.beans.factory.support.defaultListableBea
应用程序(Android): 在我运行这个应用程序的手机中,我嗅出了数据,我看到应用程序向服务器发送了一个请求,但数据包不包含json
问题内容: 我正在尝试使用RestSharp发布以下JSON: 我想我已经接近了,但是我似乎在为 SecurityQuestion 苦苦挣扎(API抛出错误,表明缺少参数,但没有说明是哪个参数) 这是我到目前为止的代码: 我的安全问题类如下所示: 谁能告诉我我在做什么错?还有其他方法可以发布安全性问题对象吗? 非常感谢。 问题答案: 您需要在标题中指定content-type: 还根据方法添加到P
我正在做一个项目,我请求一个api发布一个项目的详细信息。下面是我试图使用HttpRequest插入body itemstr的代码 这是我的newItem类 我试图将itemStr作为一个主体发布到本地运行的restful API。我可以使用GET请求检索,但不能发布。
问题内容: 我已经开始尝试使用Django REST框架。到目前为止,我已经成功地为我的对象创建了一个序列化程序,通过Javascript的$ .post()创建了发布视图,发布对象和返回对象。因此,现在我可以在JSON和Django模型对象之间进行适当的转换。 问题是我有一个对象数组[A1,A2,…,An]。现在,当我需要发布这样的数组时,我逐个对象地进行处理。是否有可能一次发布整个数组,并在D