WebService SOAP、Restful和HTTP(post/get)请求区别
web service(SOAP)
Webservice的一個(gè)最基本的目的就是提供在各個(gè)不同平臺(tái)的不同應(yīng)用系統(tǒng)的協(xié)同工作能力。?
Web service 就是一個(gè)應(yīng)用程序,它向外界暴露出一個(gè)能夠通過Web進(jìn)行調(diào)用的API。?
SOAP是一種簡(jiǎn)單基于xml的輕量協(xié)議,用戶web上交換結(jié)構(gòu)化信息和類型信息。?
soap請(qǐng)求是HTTP POST的一個(gè)專用版本,遵循一種特殊的xml消息格式Content-type設(shè)置為: text/xml任何數(shù)據(jù)都可以xml化。?
本文將通過一個(gè)簡(jiǎn)單的示例講解和演示Android平臺(tái)的Web Service開發(fā)。
Ksoap2-android簡(jiǎn)介
在Android平臺(tái)調(diào)用Web Service需要依賴于第三方類庫ksoap2,它是一個(gè)SOAP Web service客戶端開發(fā)包,主要用于資源受限制的Java環(huán)境如Applets或J2ME應(yīng)用程序(CLDC/ CDC/MIDP)。認(rèn)真讀完對(duì)ksoap2的介紹你會(huì)發(fā)現(xiàn)并沒有提及它應(yīng)用于Android平臺(tái)開發(fā),沒錯(cuò),在Android平臺(tái)中我們并不會(huì)直接使用ksoap2,而是使用ksoap2 android。KSoap2 Android 是Android平臺(tái)上一個(gè)高效、輕量級(jí)的SOAP開發(fā)包,等同于Android平臺(tái)上的KSoap2的移植版本。需要引入ksoap2-android-assembly-2.5.2-jar-with-dependencies.jar //WebService的命名空間static final String namespace = "http://impl.service.suncreate.com"; //服務(wù)器發(fā)布的url static final String url = http://10.100.3.41/axis2/services/UploadService; final String methodName = "upload"; // 函數(shù)名 final int sessionID = "111111"; //sessionID //創(chuàng)建HttpTransportSE對(duì)象,通過HttpTransportSE類的構(gòu)造方法可以指定WebService的url HttpTransportSE transport = new HttpTransportSE(url); transport.debug = true; //指定WebService的命名空間和函數(shù)名 SoapObject soapObject = new SoapObject(namespace, methodName); //設(shè)置調(diào)用方法參數(shù)的值 soapObject.addProperty("sessionID", sessionID); //sessionID soapObject.addProperty("data", cds); //cds是需要傳遞的對(duì)象 SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER10); envelope.bodyOut = transport; envelope.setOutputSoapObject(soapObject); //使用call方法調(diào)用WebService方法 transport.call(null, envelope); SoapObject sb = (SoapObject) envelope.bodyIn; String xmlMessage = sb.toString(); // 獲取從服務(wù)器端返回的XML字符串- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
Restful
REST(Representational State Transfer)一種輕量級(jí)的Web Service架構(gòu),可以完全通過HTTP協(xié)議實(shí)現(xiàn)。其實(shí)現(xiàn)和操作比SOAP和XML-RPC更為簡(jiǎn)潔,還可以利用緩存Cache來提高響應(yīng)速度,性能、效率和易用性上都優(yōu)于SOAP協(xié)議。?
REST架構(gòu)對(duì)資源的操作包括獲取、創(chuàng)建、修改和刪除資源的操作正好對(duì)應(yīng)HTTP協(xié)議提供的GET、POST、PUT和DELETE方法(Verb)
Restful與SOAP的區(qū)別
安全性:SOAP會(huì)好于restful?
效率和易用性(REST更勝一籌)?
成熟度(總的來說SOAP在成熟度上優(yōu)于REST)
HTTP-GET 和 HTTP-POST?
HTTP-GET和HTTP-POST是標(biāo)準(zhǔn)協(xié)議,他們使用HTTP(超文本傳輸協(xié)議)謂詞(謂詞是指條件表達(dá)式的求值返回真或假的過程。)對(duì)參數(shù)進(jìn)行編碼并將參數(shù)作為名稱/值對(duì)傳遞,還使用關(guān)聯(lián)的請(qǐng)求語義。每個(gè)協(xié)議都包含一系列HTTP請(qǐng)求標(biāo)頭,HTTP請(qǐng)求標(biāo)頭及其他一些信息定義客戶端向服務(wù)器請(qǐng)求哪些內(nèi)容,哪個(gè)服務(wù)器用一系列HTTP響應(yīng)標(biāo)頭和所請(qǐng)求的數(shù)據(jù)進(jìn)行響應(yīng)。
HTTP-GET 使用 MIME 類型 application/x-www-form-urlencoded(將追加到處理請(qǐng)求的服務(wù)器的 URL 中)以 URL 編碼文本的形式傳遞其參數(shù)。 URL 編碼是一種字符編碼形式,可確保傳遞的參數(shù)中包含一致性文本,例如將空格編碼為 %20,其它符號(hào)轉(zhuǎn)換為%XX,其中XX為該符號(hào)以16進(jìn)制表示的ASCII(或ISO Latin-1)值。 追加的參數(shù)也稱為查詢字符串。
與 HTTP-GET 類似,HTTP-POST 參數(shù)也是 URL 編碼的。 但是,名稱/值對(duì)是在實(shí)際的 HTTP 請(qǐng)求消息內(nèi)部傳遞的,而不是作為 URL 的一部分進(jìn)行傳遞。?
我們?nèi)粘>W(wǎng)站、系統(tǒng)都是使用這種形式進(jìn)行訪問我們的應(yīng)用程序。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
SOAP與HTTP的區(qū)別
大多數(shù)對(duì)外接口會(huì)實(shí)現(xiàn)web service方法而不是http方法。 c
web service相對(duì)http (post/get)的好處
1.接口中實(shí)現(xiàn)的方法和要求參數(shù)一目了然
2.不用擔(dān)心大小寫問題
3.不用擔(dān)心中文urlencode問題
4.代碼中不用多次聲明認(rèn)證(賬號(hào),密碼)參數(shù)
5.傳遞參數(shù)可以為數(shù)組,對(duì)象等…
6.web service相對(duì)http(post/get)由于要進(jìn)行xml解析,速度可能會(huì)有所降低。
7.web service 完全可以可以被http(post/get)替代,而且現(xiàn)在的開放平臺(tái)都是用的HTTP(post/get)實(shí)現(xiàn)的。
轉(zhuǎn)載于:https://www.cnblogs.com/ruiati/p/6638394.html
總結(jié)
以上是生活随笔為你收集整理的WebService SOAP、Restful和HTTP(post/get)请求区别的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: OPPO Watch 3发布:首发骁龙W
- 下一篇: 20145217《网络对抗》 恶意代码分