• C#调用RESTful API


    如今非常多的网络服务都用RESTful API来实现。

    比方百度的搜索推广API介绍使用Rest原因:REST+JSON风格的API相比SOAP+XML,优点是:调用更加灵活。也更easy扩展;JSON格式传输信息比XML降低约30%的数据量,效率更高。因此建议开发人员使用REST风格的API

    查找了非常多调用Rest API网络碎片资料,总是无法理解或者生效。

    以下摘一点认为有效果的作为參考吧。

    http://www.makeyuan.com/2014/02/27/1117.html

    利用该文中Post方法来调用百度搜索推广的API。尽管代码乱。可是总算成功了,以下即是代码:

            public static void send()
            {
                string url = "https://api.baidu.com/json/sms/v3/AccountService/getAccountInfo";
                HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;
                request.Method = "POST";
                request.ContentType = "application/json";
                string data = "{
    "header": {
    "token": "30xxx6aaxxx93ac8cxx8668xx39xxxx",
    "username": "jdads",
    "password": "liuqiangdong2010",
    "action": ""
    },
    "body": {}
    }";
    
                byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
                request.ContentLength = byteData.Length;
    
                using(Stream postStream = request.GetRequestStream())
                {
                    postStream.Write(byteData, 0, byteData.Length);
                }
    
                using(HttpWebResponse response = request.GetResponse() as HttpWebResponse)
                {
                    StreamReader reader = new StreamReader(response.GetResponseStream());
                    Console.WriteLine(reader.ReadToEnd());
                }
            }

    通过执行,发现json数据部分。当之前没有换行符的时候。使用@表示字符串并双引號用两个来表示时。会报数据错误。

    附上链接的文章的几种调用方式:
    1、以Get方式获取

    using System;
    using System.IO;
    using System.Net;
    using System.Text;
    
    // Create the web request
    HttpWebRequest request = WebRequest.Create("http://developer.yahoo.com/") as HttpWebRequest;
    
    // Get response
    using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
    {
    // Get the response stream
    StreamReader reader = new StreamReader(response.GetResponseStream());
    
    // Console application output
    Console.WriteLine(reader.ReadToEnd());
    }

    2、以Post方式获取

    using System.Web;
    
    Uri address = new Uri("http://api.search.yahoo.com/ContentAnalysisService/V1/termExtraction");
    
    // Create the web request
    HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
    
    // Set type to POST
    request.Method = "POST";
    request.ContentType = "application/x-www-form-urlencoded";
    
    // Create the data we want to send
    string appId = "YahooDemo";
    string context = "Italian sculptors and painters of the renaissance"
    + "favored the Vir
    
  • 相关阅读:
    MongoDB集群架构 调整,增加延迟备份节点服务器,删除仲裁节点(9)
    MongoDB 副本集管理-不定期更新(8)
    DML和查询操作说明(7)
    MongoDB 副本集权限认证(6)
    python之路——作业:Select FTP(仅供参考)
    python之路——作业:类Farbic主机管理程序(仅供参考)
    python之路——作业:高级FTP(仅供参考)
    python之路——RabbitMQ
    python之路——协程(greenlet、gevent、简单爬虫)
    python之路——多进程(进程间通信、进程池)
  • 原文地址:https://www.cnblogs.com/zsychanpin/p/6819406.html
Copyright © 2020-2023  润新知