我有一个带令牌的API服务链接。该服务将记录列表从我的数据库插入到另一个数据库。 我检索了一些项目的列表,并希望通过使用此列表和给定的令牌来使用API Rest服务。 此服务接受一个JSON对象插入,并返回插入结果。 是否有任何C#代码示例都这样做?
答案 0 :(得分:1)
首先,您必须使用JSON序列化程序,该序列化程序会将您的列表转换为JSON格式,然后使用任何可用的.NET Web客户端将其传递到Web服务。
看看下面的代码片段:
using Newtonsoft.Json;
using System.Net;
using System.IO;
namespace MyNamespace
{
class Program
{
static void Main(string[] args)
{
//your input list
List<string> animals = new List<string> { "Dog", "Cat", "Mouse" };
var json = JsonConvert.SerializeObject(animals);
//call your web API by passing this JSON along with your token
CallWebService(json);
}
private static void CallWebService(string requestPayload)
{
string url = "your webservice URL";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);
request.Method = "POST";
request.ContentType = "application/json";
request.ContentLength = requestPayload.Length;
StreamWriter requestWriter = new StreamWriter(request.GetRequestStream(), System.Text.Encoding.ASCII);
requestWriter.Write(requestPayload);
requestWriter.Close();
try
{
WebResponse webResponse = request.GetResponse();
Stream webStream = webResponse.GetResponseStream();
StreamReader responseReader = new StreamReader(webStream);
string response = responseReader.ReadToEnd();
Console.Out.WriteLine(response);
responseReader.Close();
}
catch (Exception e)
{
Console.Out.WriteLine("-----------------");
Console.Out.WriteLine(e.Message);
}
}
}
}
注意:我在项目中引用了newtonsoft NuGet软件包。