回復 1# richfox
! f$ Z: O: V' F0 T
5 d6 e+ M* _3 E3 @+ |& BC#很強大,除了系統底層操作不方便以外,基本上可以做任何事情,缺點是速度比較慢。
/ c3 G) J- t' u1 [; K hAPI簡單可以分為2種,8 ]* B( H$ Q; W
1是windows API,你在網上搜索「C#調用API」 有很多調用windows api的例子。windows api其實就是windows自己的函數,使用它可以完成系統能做的各種事情,這些教材多如牛毛。
9 V8 a% ^- C2 e, A# Y2.網站的api,首先你要理解,網站的api是什麼,網站的api通常都是一個url地址,它不是函數的概念。它的用處,就是你訪問了這個地址後,得到這個地址返回的源代碼,你根據這個源代碼,分析出你想要的數據。
. O$ L5 y, M1 k: p* j* @1 H" f) M2 p! ]3 v% C3 w
C#可以調用網站API嗎,當然可以,而且非常簡單,但是你搜索錯了詞,你搜索出來都是調用windows api的例子。這裡你要明白,C#是怎麼調用外部網站的API的,其實無論任何語言,都是通過訪問網頁調用API的,意思就是訪問網頁url。C#也不例外。所以你一旦找到C#訪問網頁的例子,就可以學會怎麼調用api。& F" I$ A& X. O
2 O* X" _- o1 b3 C/ ~
下面給你說一下怎麼使用語言調用網站API例子
: t% I r- n8 l- H. {$ C, }9 R# R( n1.申請允許使用api權限,比如廣告中國代理平台的api使用權限必須買,比如google api必須註冊帳號,還有其他網站的api,有各種不一樣的條件,你先滿足了這些條件,得到允許使用api的權限。
* j& C0 n) k! T, _% B& o. x% W- J# T2.分析api鏈接
, x/ H' E( i ~2 Q廣告中國代理平台. c/ B5 _& N: I; p7 T9 \1 V
http://d.advertcn.com/ycenter/p/iplist/uid/2097/lv/L1,L2,L3/prop/all/format/1/num/100/country/US/
9 t! P. k, |& @' C' C這個api就是一個url鏈接,目的是獲取美國的全部代理,但是這個鏈接會有ip訪問的限制, a( ^2 |, U. v! O u, E
: a" b( {) u+ ?5 C7 _# K/ z6 ^) e
豆瓣圖書查詢
+ H" _* Q- L) O* r$ b2 fhttp://book.douban.com/isbn/xxxxxxxxx/ (xxxxxxxxx是圖書的ISBN編號)) _0 Z4 G, l% |( X. m5 v+ I3 V# k+ }
這個api鏈接,有幾點要求,首先,你要有豆瓣帳號對吧,然後後面的xxx要替換成你想查詢的圖書編號對吧: [! i2 l4 S* l. A! y9 S# L6 o
; Y/ f9 t* Y, ?6 u C2 X8 o% C分析api鏈接的目的,就是分析出第2層需要滿足的條件,比如鏈接是否要代參數,是否有ip訪問限制等 i5 L1 U; D* M. W; \# Q
; M1 Z7 }0 z3 @2 ~
3.通過相應語言的http訪問方式來進行這些api鏈接的訪問
0 d# z. S" r& p" FC#的訪問網頁方式有很多種,你應該在教科書看到各種訪問網頁的方式,比如使用wininet,具體的代碼,你要多翻教材了,訪問網頁的方式是很多的,訪問後,將得到的api鏈接源代碼儲存到一個字符串變量中。
, N6 V* F$ \2 V. W# d @+ P/ X: B2 x H5 t
4.你最終得到的這個字符串變量,就是你訪問後的結果,但是你可能需要的只是這個結果裡面的某些部分,或著你認為這個結果的格式不對,不方便儲存,或不方便顯示在網頁上。你要做的就是通過』C# 字符串函數『將這些結果分解成你自己想要的,或者你基礎不錯,使用正則函數分解。這個結果,有可能是xml格式,有可能是json格式,還有可能是自定義的格式,如果你使用C#相應的函數去解析,會方便很多,如果格式不通用,就自己通過字符串函數解析就可以了。$ ? F) L8 b5 p
7 C4 d: V/ G1 `6 m: w
5.解析後,你的結果就精簡了,符合你自己的格式了,那麼你可以選擇保存進數據庫或者顯示在網頁上。5 t z9 D" A' C0 S; I r
i9 l# N3 Q; ^# f! G9 |: m4 [. A' a做到了以上的內容,你對第3方網站api怎麼獲取和訪問就應該能自己摸上路了。
- g! o' {7 z& E具體代碼我是不會給你的,要說起來,也不是幾句話能說清楚的,但是寫這些就是思路問題,思路對了,你再去按照思路找教材,會有很大的進步。 |