Web Services 使用带有json主体的Rest Web服务请求[重复]

7gcisfzg  于 2023-01-13  发布在  其他
关注(0)|答案(1)|浏览(136)
    • 此问题在此处已有答案**:

How to post JSON to a server using C#?(15个答案)
六年前关闭了。
这是我第一次尝试使用rest web服务。
在这个RWS中,我需要创建一个头文件并在json中发送值。下面是我正在使用的代码。

var password = tb_Authorization.Text;
var user = tb_AppCaller.Text;

string wrURL = tb_URL.Text;

WebRequest req = WebRequest.Create(tb_URL.Text);
req.Method = "POST";
req.ContentType = "application/json";

req.Headers["Authorization"] = tb_Authorization.Text;
req.Headers["AppCaller"] = tb_AppCaller.Text;

我需要发送一个如下所示的JSON来获得响应:

{ "lastName": "Jordan", "firstName": "Michael"}

以获得:

{ 
  "NumCountry": 1,
  "Country": [
    {
      "Name": "USA",
      "rank": 1
    }
  ]
}

在这最后一部分,我的大脑冻结了,我不能做"下一步"。我的基本问题是,我怎么把json发送到header?

olhwl3o2

olhwl3o21#

您必须使用StreamWriterStreamReader

var httpWebRequest = (HttpWebRequest)WebRequest.Create(tb_URL.Text);
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
    string json = "{\"lastName\": \"Jordan\", \"firstName\": \"Michael\"}";

    streamWriter.Write(json);
    streamWriter.Flush();
    streamWriter.Close();
}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
    var result = streamReader.ReadToEnd();
}

相关问题