Java网络编程之URLConnection
Java網(wǎng)絡(luò)編程之URLConnecton
一、URLConnection簡介
URLConnection是一個抽象類,表示指向URL指定資源的活動連接。URLConnection有兩個不同但相關(guān)的用途。首先,與URL類相比,它對與服務(wù)器(特別是HTTP服務(wù)器)的交互提供了更多的控制。URLConnection可以檢查服務(wù)器發(fā)送的首部,并相應(yīng)地做出響應(yīng)。他可以設(shè)置客戶端請求中使用的首部字段。最后,URLConnection可以用POST。PUT和其它HTTP請求方法向服務(wù)器發(fā)回數(shù)據(jù),此類的實例可用于讀取和寫入此URL引用的資源。使用URLConnection對象一般分為以下7步:
①創(chuàng)建一個URL對象;
②通過URL對象的openConnection方法創(chuàng)建URLConnection對象;
③通過URLConnection對象提供的方法可以設(shè)置參數(shù)和一般請求屬性。常用的請求屬性設(shè)置方式有以下幾種:
public void setRequestProperty(String key,String value)設(shè)置指定的請求關(guān)鍵字對應(yīng)的值
public void setDoInput(boolean doinput)設(shè)置是否使用URL連接進(jìn)行輸入,默認(rèn)值為true
public void setDoOutput(boolean dooutput)設(shè)置是否使用URL連接進(jìn)行輸出,默認(rèn)值為false,如果設(shè)置為true,就可以獲取一個字節(jié)輸出流,用于將數(shù)據(jù)發(fā)送到服務(wù)器
public void setUseCaches(boolean usecaches)設(shè)置此連接是否使用任何可用的緩存,默認(rèn)值為true
④調(diào)用URLConnection對象的connect方法連接到該遠(yuǎn)程資源
⑤連接到服務(wù)器后,就可以查詢頭部信息了,查詢頭部信息常用方法有以下幾種:
public String getHeaderField(String name)返回指定頭字段的值
public Map<String,List<String>>getHeaderFields()返回頭字段的不可修改的Map
public String getContentType()返回content-type頭字段的值
public String getContentEncoding()返回content-encoding的值
⑥獲取輸入流訪問資源數(shù)據(jù)。使用getInputStream 方法,獲取一個字節(jié)輸入流,以便讀取資源信息
⑦獲取輸入流并寫數(shù)據(jù)
二、URLConnection數(shù)據(jù)結(jié)構(gòu)
HttpURLConnection是URLConnection類的子類, URLConnection與HttpURLConnection都是抽象類,無法直接實例化對象。其對象主要通過URL的openConnection()方法獲得
三、URLConnection方法摘要
| 構(gòu)造方法摘要 | |
|---|---|
protected |
URLConnection(URLurl) 構(gòu)造一個到指定 URL 的 URL 連接。 |
| 方法摘要 | |
|---|---|
void |
addRequestProperty(Stringkey, Stringvalue)添加由鍵值對指定的一般請求屬性。 |
abstract |
connect()打開到此 URL 引用的資源的通信鏈接(如果尚未建立這樣的連接)。 |
boolean |
getAllowUserInteraction()返回此對象的 allowUserInteraction 字段的值。 |
int |
getConnectTimeout()返回連接超時設(shè)置。 |
Object |
getContent()獲取此 URL 連接的內(nèi)容。 |
Object |
getContent(Class[]classes) 獲取此 URL 連接的內(nèi)容。 |
String |
getContentEncoding()返回 content-encoding 頭字段的值。 |
int |
getContentLength()返回 content-length 頭字段的值。 |
String |
getContentType()返回 content-type 頭字段的值。 |
long |
getDate()返回 date 頭字段的值。 |
staticboolean |
getDefaultAllowUserInteraction()返回 allowUserInteraction 字段的默認(rèn)值。 |
staticString |
getDefaultRequestProperty(Stringkey)已過時。應(yīng)在獲得 URLConnection 的適當(dāng)實例后使用特定 getRequestProperty 方法的實例。 |
boolean |
getDefaultUseCaches()返回 URLConnection 的 useCaches標(biāo)志的默認(rèn)值。 |
boolean |
getDoInput()返回此 URLConnection 的 doInput標(biāo)志的值。 |
boolean |
getDoOutput()返回此 URLConnection 的 doOutput標(biāo)志的值。 |
long |
getExpiration()返回 expires 頭字段的值。 |
staticFileNameMap |
getFileNameMap()從數(shù)據(jù)文件加載文件名映射(一個 mimetable)。 |
String |
getHeaderField(intn)返回第 n 個頭字段的值。 |
String |
getHeaderField(Stringname)返回指定的頭字段的值。 |
long |
getHeaderFieldDate(Stringname, 返回解析為日期的指定字段的值。 |
int |
getHeaderFieldInt(Stringname, 返回解析為數(shù)字的指定字段的值。 |
String |
getHeaderFieldKey(intn)返回第 n 個頭字段的鍵。 |
Map<String,List<String>> |
getHeaderFields()返回頭字段的不可修改的 Map。 |
long |
getIfModifiedSince()返回此對象的 ifModifiedSince 字段的值。 |
InputStream |
getInputStream()返回從此打開的連接讀取的輸入流。 |
long |
getLastModified()返回 last-modified 頭字段的值。 |
OutputStream |
getOutputStream()返回寫入到此連接的輸出流。 |
Permission |
getPermission()返回一個權(quán)限對象,其代表建立此對象表示的連接所需的權(quán)限。 |
int |
getReadTimeout()返回讀入超時設(shè)置。 |
Map<String,List<String>> |
getRequestProperties()返回一個由此連接的一般請求屬性構(gòu)成的不可修改的 Map。 |
String |
getRequestProperty(Stringkey)返回此連接指定的一般請求屬性值。 |
URL |
getURL()返回此 URLConnection 的 URL 字段的值。 |
boolean |
getUseCaches()返回此 URLConnection 的 useCaches字段的值。 |
staticString |
guessContentTypeFromName(Stringfname) 根據(jù) URL 的指定 "file" 部分嘗試確定對象的內(nèi)容類型。 |
staticString |
guessContentTypeFromStream(InputStreamis)根據(jù)輸入流的開始字符嘗試確定輸入流的類型。 |
void |
setAllowUserInteraction(booleanallowuserinteraction)設(shè)置此 URLConnection 的 allowUserInteraction字段的值。 |
void |
setConnectTimeout(inttimeout)設(shè)置一個指定的超時值(以毫秒為單位),該值將在打開到此 URLConnection 引用的資源的通信鏈接時使用。 |
staticvoid |
setContentHandlerFactory(ContentHandlerFactoryfac)設(shè)置應(yīng)用程序的 ContentHandlerFactory。 |
staticvoid |
setDefaultAllowUserInteraction(booleandefaultallowuserinteraction)將未來的所有 URLConnection 對象的allowUserInteraction 字段的默認(rèn)值設(shè)置為指定的值。 |
staticvoid |
setDefaultRequestProperty(Stringkey, Stringvalue)已過時。應(yīng)在獲得 URLConnection 的適當(dāng)實例后使用特定 setRequestProperty 方法的實例。調(diào)用此方法沒有任何作用。 |
void |
setDefaultUseCaches(booleandefaultusecaches)將 useCaches 字段的默認(rèn)值設(shè)置為指定的值。 |
void |
setDoInput(booleandoinput)將此 URLConnection 的 doInput字段的值設(shè)置為指定的值。 |
void |
setDoOutput(booleandooutput)將此 URLConnection 的 doOutput字段的值設(shè)置為指定的值。 |
staticvoid |
setFileNameMap(FileNameMapmap)設(shè)置 FileNameMap。 |
void |
setIfModifiedSince(longifmodifiedsince)將此 URLConnection 的 ifModifiedSince字段的值設(shè)置為指定的值。 |
void |
setReadTimeout(inttimeout)將讀超時設(shè)置為指定的超時值,以毫秒為單位。 |
void |
setRequestProperty(Stringkey, Stringvalue)設(shè)置一般請求屬性。 |
void |
setUseCaches(booleanusecaches)將此 URLConnection 的 useCaches字段的值設(shè)置為指定的值。 |
String |
toString()返回此 URL 連接的 String 表示形式。 |
參考文章:
http://blog.csdn.net/im_xiao/article/details/51125201
如果,您對我的這篇博文有什么疑問,歡迎評論區(qū)留言,大家互相討論學(xué)習(xí)。
如果,您認(rèn)為閱讀這篇博客讓您有些收獲,不妨點擊一下右下角的【推薦】。
如果,您希望更容易地發(fā)現(xiàn)我的新博客,不妨點擊一下左下角的【關(guān)注我】。
如果,您對我的博文感興趣,可以關(guān)注我的后續(xù)博客,我是【AlbertRui】。轉(zhuǎn)載請注明出處和鏈接地址,歡迎轉(zhuǎn)載,謝謝!
總結(jié)
以上是生活随笔為你收集整理的Java网络编程之URLConnection的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 魔兽世界怎么获得沙色夜刃豹 沙色夜刃豹获
- 下一篇: 常用密码词典