現在很是多的網絡服務都用RESTful API來實現。javascript
比方百度的搜索推廣API介紹使用Rest緣由:REST+JSON風格的API相比SOAP+XML,優勢是:調用更加靈活。也更easy擴展;JSON格式傳輸信息比XML下降約30%的數據量,效率更高。所以建議開發人員使用REST風格的API。html
查找了很是多調用Rest API網絡碎片資料,老是沒法理解或者生效。java
如下摘一點認爲有效果的做爲參考吧。web
http://www.makeyuan.com/2014/02/27/1117.htmljson
利用該文中Post方法來調用百度搜索推廣的API。儘管代碼亂。但是總算成功了,如下便是代碼: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 = "{\n\"header\": {\n\"token\": \"30xxx6aaxxx93ac8cxx8668xx39xxxx\",\n\"username\": \"jdads\",\n\"password\": \"liuqiangdong2010\",\n\"action\": \"\"\n},\n\"body\": {}\n}";
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數據部分。當以前沒有換行符的時候。使用@表示字符串並雙引號用兩個來表示時。會報數據錯誤。markdown
附上連接的文章的幾種調用方式:
一、以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());
}
二、以Post方式獲取app
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