如今非常多的网络服务都用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
搭建类似生产环境的RAC
[大数据入门] Cloudera-Hadoop 理论
js中的正则表达式【常用】
html-css-js基本理解和简单总结
python的socket.recv函数陷阱
python异步编程--回调模型(selectors模块)
python并发学习总结
python描述符学习
python网络编程基础
- 最新文章
-
Qt 倒计时验证码按钮效果
opencv 环境配置-windowsx64 +VS2017
python 脚本编译成可执行二进制(exe)
python 小工具 重命名当前文件夹内所有的文件,升序命名
Git实操
初识kafka
websocket随笔
Java生成带logo二维码
ActiveMQ使用介绍及实例
RabbitMQ使用介绍及实例
- 热门文章
-
redis列表操作基本命令
事务理解及Spring中的事务
apache配置,apache直接打开文件而不下载问题
【DB2】SQL0437W Performance for this complex query may be sub-optimal
愿人生从容
【ORACLE】oracle 日志文件管理
【ORACLE】ID 2299494.1 安装Oracle 11g 86%报错:Error in invoking target 'agent nmhs' of makefile
【ORACLE】ORACLE session(会话)管理
【ORACLE】Bulk Processing with BULK COLLECT and FORALL
Openstack