如何使用查询字符串参数在控制台应用程序中调用 Web Api
How to call Web Api in Console Application using Query string Param
我的查询字符串中有参数,所以我需要像下面给定的那样传递 url
URL + ?dd={{Some Json Data}}&accessKey=ddfr54r5g5r
WebClient webClient = new WebClient();
webClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
string url = "URL + ?dd={{Some Json Data}}&accessKey=ddfr54r5g5r";
var jsonData = webClient.DownloadData(url);
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(RootObject));
RootObject obj = new RootObject();
obj = (RootObject)ser.ReadObject(new MemoryStream(jsonData));
谁能分享一些适用于您的 API 的方法。
如果您的 URL
是一个变量,那么您为什么要对它进行字符串化。应该是
string url = URL + "?dd={{Some Json Data}}&accessKey=ddfr54r5g5r";
同样不需要实例化 DataContractJsonSerializer
来反序列化数据。而是使用 Newtonsoft.Json
并调用 DeserializeObject()
方法,如 var data = JsonConvert.DeserializeObject<RootObject>(jsonData);
我建议使用 System.Net.Http.HttpClient
class 而不是提供更多控制权。像
using (HttpClient client = new HttpClient())
{
try
{
string responseBody = await client.GetStringAsync(uri);
var data = JsonConvert.DeserializeObject<RootObject>(responseBody);
}
catch(HttpRequestException e)
{
//log exception
}
}
请参阅 https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client 了解更多相关信息
我的查询字符串中有参数,所以我需要像下面给定的那样传递 url
URL + ?dd={{Some Json Data}}&accessKey=ddfr54r5g5r
WebClient webClient = new WebClient();
webClient.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)");
string url = "URL + ?dd={{Some Json Data}}&accessKey=ddfr54r5g5r";
var jsonData = webClient.DownloadData(url);
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(RootObject));
RootObject obj = new RootObject();
obj = (RootObject)ser.ReadObject(new MemoryStream(jsonData));
谁能分享一些适用于您的 API 的方法。
如果您的 URL
是一个变量,那么您为什么要对它进行字符串化。应该是
string url = URL + "?dd={{Some Json Data}}&accessKey=ddfr54r5g5r";
同样不需要实例化 DataContractJsonSerializer
来反序列化数据。而是使用 Newtonsoft.Json
并调用 DeserializeObject()
方法,如 var data = JsonConvert.DeserializeObject<RootObject>(jsonData);
我建议使用 System.Net.Http.HttpClient
class 而不是提供更多控制权。像
using (HttpClient client = new HttpClient())
{
try
{
string responseBody = await client.GetStringAsync(uri);
var data = JsonConvert.DeserializeObject<RootObject>(responseBody);
}
catch(HttpRequestException e)
{
//log exception
}
}
请参阅 https://docs.microsoft.com/en-us/aspnet/web-api/overview/advanced/calling-a-web-api-from-a-net-client 了解更多相关信息