使用json body请求使用Rest Webservice

时间:2016-11-04 17:40:42

标签: c# json web-services rest

这是我第一次尝试使用休息网络服务。

在这个R WS中我需要创建一个头并在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?

1 个答案:

答案 0 :(得分:1)

您必须使用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();
}