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