在C#中将值传递给PUT JSON请求

我正在使用API​​,并尝试在C#中执行JSON PUT请求。这是我正在使用的代码:

    public static bool SendAnSMSMessage()

{

var httpWebRequest = (HttpWebRequest)WebRequest.Create("https://apiURL");

httpWebRequest.ContentType = "text/json";

httpWebRequest.Method = "PUT";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))

{

string json = **// Need to put data here to pass to the API.**

streamWriter.Write(json);

}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))

{

var responseText = streamReader.ReadToEnd();

//Now you have your response.

//or false depending on information in the response

return true;

}

}

问题是我不知道如何将数据传递给API。因此,就像在JavaScript中一样,我将执行以下操作来传递数据:

        type: 'PUT',

data: { 'reg_FirstName': 'Bob',

'reg_LastName': 'The Guy',

'reg_Phone': '123-342-1211',

'reg_Email': 'someemail@emai.com',

'reg_Company': 'None',

'reg_Address1': 'Some place Dr',

'reg_Address2': '',

'reg_City': 'Mars',

'reg_State': 'GA',

'reg_Zip': '12121',

'reg_Country': 'United States'

我将如何在C#中执行相同的操作?谢谢!

回答:

httpWebRequest.ContentType = "text/json";

绝对应该是:

httpWebRequest.ContentType = "application/json";

除此之外,您的当前代码没有任何问题。

至于JSON生成部分,您可以使用JSON序列化器:

var serializer = new JavaScriptSerializer();

string json = serializer.Serialize(new

{

reg_FirstName = "Bob",

reg_LastName = "The Guy",

... and so on of course

});

在此示例中,我显然使用了一个匿名对象,但是您可以完美地定义一个属性匹配的模型,然后将该模型的实例传递给该Serialize方法。您可能还想签出Json.NET库,它是第三方JSON序列化程序,它比内置的.NET更轻巧,更快捷。


但总而言之,您可能还听说过ASP.NET Web API以及即将推出的.NET

4.5。如果这样做了,您应该意识到将有一个HttpClient专门为这些需求量身定制的API HTTP

Web客户端()。WebRequest在几个月内,使用来使用启用了JSON的API会被视为过时的代码。我之所以这样说是因为您可以立即使用NuGet来使用此新客户端,并简化可怜的灵魂的生活(任务是将代码迁移到.NET

XX),该工作将在几年后甚至可能在您的代码中进行。甚至不知道什么WebRequest是:-)

以上是 在C#中将值传递给PUT JSON请求 的全部内容, 来源链接: utcz.com/qa/421199.html

回到顶部