从C#

时间:2018-08-29 11:23:40

标签: c#

我有一个带令牌的API服务链接。该服务将记录列表从我的数据库插入到另一个数据库。 我检索了一些项目的列表,并希望通过使用此列表和给定的令牌来使用API​​ Rest服务。 此服务接受一个JSON对象插入,并返回插入结果。 是否有任何C#代码示例都这样做?

1 个答案:

答案 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软件包。