① java請求一個URL。獲取網站返回的數據。通過POST請求
packagewzh.Http;
importjava.io.BufferedReader;
importjava.io.IOException;
importjava.io.InputStreamReader;
importjava.io.PrintWriter;
importjava.net.URL;
importjava.net.URLConnection;
importjava.util.List;
importjava.util.Map;
publicclassHttpRequest{
/**
*向指定URL發送GET方法的請求
*
*@paramurl
*發送請求的URL
*@paramparam
*請求參數,請求參數應該是name1=value1&name2=value2的形式。
*@returnURL所代表遠程資源的響應結果
*/
publicstaticStringsendGet(Stringurl,Stringparam){
Stringresult="";
BufferedReaderin=null;
try{
StringurlNameString=url+"?"+param;
URLrealUrl=newURL(urlNameString);
//打開和URL之間的連接
URLConnectionconnection=realUrl.openConnection();
//設置通用的請求屬性
connection.setRequestProperty("accept","*/*");
connection.setRequestProperty("connection","Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");
//建立實際的連接
connection.connect();
//獲取所有響應頭欄位
Map<String,List<String>>map=connection.getHeaderFields();
//遍歷所有的響應頭欄位
for(Stringkey:map.keySet()){
System.out.println(key+"--->"+map.get(key));
}
//定義BufferedReader輸入流來讀取URL的響應
in=newBufferedReader(newInputStreamReader(
connection.getInputStream()));
Stringline;
while((line=in.readLine())!=null){
result+=line;
}
}catch(Exceptione){
System.out.println("發送GET請求出現異常!"+e);
e.printStackTrace();
}
//使用finally塊來關閉輸入流
finally{
try{
if(in!=null){
in.close();
}
}catch(Exceptione2){
e2.printStackTrace();
}
}
returnresult;
}
/**
*向指定URL發送POST方法的請求
*
*@paramurl
*發送請求的URL
*@paramparam
*請求參數,請求參數應該是name1=value1&name2=value2的形式。
*@return所代表遠程資源的響應結果
*/
publicstaticStringsendPost(Stringurl,Stringparam){
PrintWriterout=null;
BufferedReaderin=null;
Stringresult="";
try{
URLrealUrl=newURL(url);
//打開和URL之間的連接
URLConnectionconn=realUrl.openConnection();
//設置通用的請求屬性
conn.setRequestProperty("accept","*/*");
conn.setRequestProperty("connection","Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");
//發送POST請求必須設置如下兩行
conn.setDoOutput(true);
conn.setDoInput(true);
//獲取URLConnection對象對應的輸出流
out=newPrintWriter(conn.getOutputStream());
//發送請求參數
out.print(param);
//flush輸出流的緩沖
out.flush();
//定義BufferedReader輸入流來讀取URL的響應
in=newBufferedReader(
newInputStreamReader(conn.getInputStream()));
Stringline;
while((line=in.readLine())!=null){
result+=line;
}
}catch(Exceptione){
System.out.println("發送POST請求出現異常!"+e);
e.printStackTrace();
}
//使用finally塊來關閉輸出流、輸入流
finally{
try{
if(out!=null){
out.close();
}
if(in!=null){
in.close();
}
}
catch(IOExceptionex){
ex.printStackTrace();
}
}
returnresult;
}
}
//函數調用時填入URL和參數(參數非必須)就可以獲取返回的數據,發送post請求調用示例
Stringresult=HttpRequest.sendPost("http://api.map..com/telematics/v3/weather?location=%E5%8C%97%E4%BA%AC&output=json&ak=","")
② 求助,Java HttpUrlConnection POST請求
在Java編程中,HttpURLConnection是處理HTTP請求的常用工具,它能夠方便地發送GET和POST請求。這兩種請求方式在Web開發中非常常見,它們各自適用於不同的場景。
GET請求主要用於從伺服器獲取數據。它的特點是參數以查詢字元串的形式出現在URL中,這種方式簡單直接,適用於簡單的數據請求。例如,當用戶點擊一個鏈接時,瀏覽器會發送一個GET請求,將URL中的參數傳遞給伺服器。
POST請求則用於向伺服器提交數據,它將參數封裝在HTTP請求體中。這種方式可以傳遞比GET請求更多的數據,而且數據不會出現在URL中,因此更加安全。POST請求常用於表單提交、用戶登錄等場景。
在Java中,使用HttpURLConnection發送POST請求時,需要設置請求方法為POST,並將請求體中的數據寫入到輸出流中。具體步驟包括創建HttpURLConnection對象,設置請求屬性,然後使用輸出流寫入數據,最後讀取伺服器響應。
相比之下,GET請求的實現則更為簡單。只需設置請求方法為GET,並將參數添加到URL中即可。
總之,GET和POST請求各有特點,開發者需要根據實際需求選擇合適的方式。正確使用這兩種請求方式,可以提高Web應用的性能和安全性。
③ java , 瀏覽器輸入url地址,獲取硬碟某個pdf文件。怎麼做 如下圖這種效果。
1. 怎樣迅速地把網頁或鏈接發送給他人?
文件/發送/ 指令可以立即通過電子郵件發送網頁或鏈接。
2. 如何在新窗口中打開鏈接?
1. 在頁面中直接拖放鏈接。
2. 拖放鏈接到地址欄或標簽欄。
3. 按下 Shift 鍵後點擊鏈接。
4. 激活」在新窗口中打開鏈接「功能。
5. 設置滑鼠選項的滑鼠按鍵動作「中鍵單擊」為「打開鏈接」,然後您就可以單擊滑鼠中鍵來打開鏈接。
3. 怎樣打開網頁中的地址字串?
1. 選中地址字串,然後拖放到地址欄或標簽欄。
2. 選中地址字串,然後選擇 文件/新建/所選字元(Ctrl+Shift+T)。
3. 選中地址字串,然後拖放到頁面中的任何地方。
4. 怎樣快速的打開地址?
1. 啟用「一鍵通」功能,並為指定的 URL 設置一個快捷鍵。
2. 啟用「URL 縮寫功能」,然後在地址欄輸入相應的縮寫。
3. 將 URL 添加到收藏夾,以後就能通過收藏夾選擇並打開該URL。
5. 怎樣快速的同時打開若干個 URL?
1. 把這些 URL 保存為一個群組,然後可以打開這個群組。
2. 把這些 URL 添加到收藏夾中的同一個文件夾中,然後您可以通過「打開本層鏈接」來打開。
3. 選中這些文件或鏈接,然後拖放到主窗口或懸浮監視窗。
6. 怎樣快速的關閉一個頁面?
1. 按快捷鍵 F4、Ctrl+F4、Ctrl+W、Ctrl+PageDown。
2. 啟用「單擊圖標關閉標簽」,就可通過單擊窗口標簽的圖標來快速關閉。
3. 啟用滑鼠手勢功能,然後執行手勢 ↑ → (預設)可關閉當前頁。
4. 右鍵點擊標簽,選擇彈出菜單中的 "關閉" 項。
7. 怎樣快速的保存圖片?
1. 設置滑鼠拖放圖片的動作為「保存到收集器」,然後就可以快速地將圖片保存到收集器所指定的路徑中。
2. 把圖片拖動到狀態欄的收集器圖標,此圖片就會自動保存到收集器所指定的路徑中。
8. 怎樣快速的搜索?
1. 在搜索欄鍵入關鍵字後按回車鍵。
2. 把要搜索的關鍵字拖放到搜索欄。
3. 把關鍵字拖放到頁面中任何地方。
4. 設置地址欄轉到按鈕顯示搜索引擎菜單,在地址欄輸入關鍵字,點擊轉到按鈕的搜索引擎下拉菜單。
9. 怎樣快速的切換選擇不同的搜索引擎?
您可以按下 Ctrl 鍵或 Shift 鍵並點擊彈出的搜索欄菜單,實現臨時的切換選擇不同的搜索引擎項,相關細節請參看「搜索引擎」。
10. 怎樣快速的在頁面內搜索某個指定的鏈接?
在 IE 中,如果想尋找一個您所需要的特定鏈接,您必須打開源文件並在其中查找,這樣很麻煩且效果也不好。在 GreenBrowser 中您可以使用 「鏈接列表" 對話框來達到這個目的。請參看「頁內鏈接分析」的相關介紹。
11. 怎樣快速的顯示/隱藏 GreenBrowser?
1. 使用快捷鍵。默認鍵是 Ctrl+`,您可以設置新的快捷鍵。
2. 如果選擇了顯示懸浮監視窗,雙擊懸浮窗。
3. 如果選擇了顯示系統托盤圖標,點擊這個圖標。
12. 怎樣使 GreenBrowser 在運行中佔用更少的內存資源?
當 GreenBrowser 最小化或關閉到系統托盤時,它將佔用最小的物理內存,大約能釋放 80% 內存空間。所以當您不使用 GreenBrowser 時,您可以將它最小化或關閉到系統托盤,最小化後還原也有相同的效果。
13. 怎樣使用地址欄的字串拖放功能?
1. 拖放: 打開拖放的字串
2. Ctrl+拖放: 搜索拖放的字串
3. Shift+拖放: 將拖放的字串存入搜索欄,但不執行搜索
4. Ctrl+Shift+拖放: 在頁面中高亮顯示拖動的關鍵字
14. 怎樣使用搜索欄的字串拖放功能?
1. 拖放: 搜索拖放的字串
2. Ctrl+拖放: 在頁面中查找拖放的字串
3. Shift+拖放: 將拖放的字串存入搜索欄,但不執行搜索
4. Ctrl+Shift+拖放: 在頁面中高亮顯示拖動的關鍵字
15. 怎樣直接打開指向的地址?
有一些 URL 象這樣的鏈接: /jump.asp?/。如果您需要直接打開這個指向的地址,請在點擊該鏈接時按下 Ctrl 鍵 (預設值)。
16. 怎樣快速的改變頁面的下載控制方案?
您可以通過頁面下載控制菜單來改變下載控制方案,您點選菜單項後,頁面將隨之自動刷新,如果您不需要這樣,請在點選菜單項時按下 Ctrl 鍵。
17. 怎樣快速的打開頁面?
1. 禁止或精簡彈出窗口及內容過濾列表。
2. 禁止或精簡狀態欄的顯示內容: 本地 IP 地址、空閑物理內存、網路速率、Modem 速率。
18. 怎樣解除網頁的滑鼠左右鍵限制?
一些網頁鎖定了滑鼠左右鍵的文本選擇和點擊的功能,您可以解除這個限制:
1. 運行腳本插件「解除滑鼠左右鍵限制」或在腳本收集器中運行這個腳本。
2. 禁止頁面下載控制中的 Script,重新載入頁面。
19. 怎樣快速的找到具有相同或相似地址的標簽?
有時候,您打開了很多頁面,要從中尋找出地址相同或相似的標簽就很困難。您可以使用標記/不標記功能,當輸入相似的地址時,您可以修改這個地址字元,GreenBrowser 就能找到相似的地址並用特殊的圖標把它們標記出來。
20. 怎樣快速的關閉一些標簽?
1. 鎖定標簽,點擊「全部關閉」。
2. 如果網頁的地址相同或相似,點擊「全部關閉(相似地址)」。
3. 如果網頁的標題相同或相似,點擊「全部關閉(相似標題)」。
4. 您可以快速關閉在當前頁左、右側的所有頁面。
21. 怎樣禁止顯示 Flash?
1. 添加 *.swf 到頁面內容過濾列表,同時開啟頁面內容過濾功能。
2. 在「頁面下載控制」菜單中不選擇「顯示 Flash(所有窗口)」,這個方法比第一個方法的效率可能更高,但這將禁止所有 IE 內核瀏覽器顯示 Flash。
22. 怎樣使 GreenBrowser 更穩定?
GreenBrowser 支持腳本插件,但某些錯誤或復雜的腳本可能會導致 GreenBrowser 崩潰。建議謹慎運行腳本插件。
23. 怎樣安裝插件?
1. 通過 GreenBrowser 主頁下載插件壓縮包。
2. 將壓縮包解壓到一個新的文件夾下。
3. 點擊 工具擴展工具欄設置擴展工具欄...
4. 點擊 」...「 後選擇插件,然後按下插入按鈕。
5. 如果您把一些插件都放在一個文件夾下,您可以點擊 「導入腳本插件...」 來選擇這個文件夾,然後您就可以一次性導入該文件夾下的所有插件。
24. 怎樣在瀏覽時保護頁面標題信息?
1. 您可以選擇 「禁止在窗口標題欄中顯示網頁標題」。
2. 您可以為頁面標簽分配固定標題,如果您需要將固定標題分配給所有標簽,就在點擊 「確定「 前按住 Shift 鍵。
25. 怎樣快速的刪除地址欄和搜索欄關鍵字條目?
1. 您可以下拉列表並使用 「Delete」 鍵直接刪除條目。
2. GreenBrowser 選項中的刪除選項。
26. 怎樣禁止網頁彈出關於ActiveX認證的對話框?
有兩種方法:
1.使用外部工具 NotTroubleMe 別煩我,將您不想彈出的ActiveX對話框的CLSID添加到 NotTroubleMe 並選中該項。
2.在內容過濾列表中添加規則「*.cab」,並啟用頁面內容過濾器。
27. 怎樣使用GreenBrowser的相對路徑?
如果您想使用GreenBrowser安裝路徑下的目錄或文件,只需要在其路徑前面添加「.」或者「..」,例如: .skin, .Proxy.ini, . esource esource.htm,..Software.
④ Java請求一個URL。獲取網站返回的數據。
publicstaticStringSendGET(Stringurl,Stringparam){
Stringresult="";//訪問返回結果
BufferedReaderread=null;//讀取訪問結果
try{
//創建url
URLrealurl=newURL(url+"?"+param);
//打開連接
URLConnectionconnection=realurl.openConnection();
//設置通用的請求屬性
connection.setRequestProperty("accept","*/*");
connection.setRequestProperty("connection","Keep-Alive");
connection.setRequestProperty("user-agent",
"Mozilla/4.0(compatible;MSIE6.0;WindowsNT5.1;SV1)");
//建立連接
connection.connect();
//獲取所有響應頭欄位
Map<String,List<String>>map=connection.getHeaderFields();
//遍歷所有的響應頭欄位,獲取到cookies等
for(Stringkey:map.keySet()){
System.out.println(key+"--->"+map.get(key));
}
//定義BufferedReader輸入流來讀取URL的響應
read=newBufferedReader(newInputStreamReader(
connection.getInputStream(),"UTF-8"));
Stringline;//循環讀取
while((line=read.readLine())!=null){
result+=line;
}
}catch(IOExceptione){
e.printStackTrace();
}finally{
if(read!=null){//關閉流
try{
read.close();
}catch(IOExceptione){
e.printStackTrace();
}
}
}
returnresult;
}
⑤ java獲取伺服器文件,怎樣用url返回
下面提供二種方法會使用java發送url請求,並獲取伺服器返回的值
第一種方法:
代碼如下:
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.CoreConnectionPNames;
import org.apache.http.util.EntityUtils;
(StringurlStr,Stringparam1,Stringparam2)throwsException{
StringtempStr=null;
HttpClienthttpclient=newDefaultHttpClient();
Propertiesproperties=newProperties();
HttpEntityentity=null;
StringxmlContent="";
try
{
//設置超時時間
httpclient.getParams().setIntParameter(CoreConnectionPNames.CONNECTION_TIMEOUT,20000);
httpclient.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,20000);
//封裝需要傳遞的參數
List<NameValuePair>nvps=newArrayList<NameValuePair>();
nvps.add(newBasicNameValuePair("mainMemoCode",strmainMemoCode));
nvps.add(newBasicNameValuePair("recordPassWord",strrecordPassWord));
//客戶端的請求方法類型
HttpPosthttpPost=newHttpPost(urlStr);
httpPost.setEntity(newUrlEncodedFormEntity(nvps,"GBK"));
HttpResponseresponse=httpclient.execute(httpPost);
//獲取伺服器返回Http的Content-Type的值
tempStr=response.getHeaders("Content-Type")[0].getValue().toString();
//獲取伺服器返回頁面的值
entity=response.getEntity();
xmlContent=EntityUtils.toString(entity);
Stringstrmessage=null;
System.out.println(xmlContent);
System.out.println(response.getHeaders("Content-Type")[0].getValue().toString());
httpPost.abort();
}
catch(SocketTimeoutExceptione)
{
}
catch(Exceptionex)
{
ex.printStackTrace();
}
finally{
httpclient.getConnectionManager().shutdown();
}
第二種方法:
代碼如下:
(StringurlStr,Stringparam1,Stringparam2)throwsException{
HttpURLConnectionurl_con=null;
try{
URLurl=newURL(urlStr);
StringBufferbankXmlBuffer=newStringBuffer();
//創建URL連接,提交到數據,獲取返回結果
HttpURLConnectionconnection=(HttpURLConnection)url.openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
connection.setRequestProperty("User-Agent","directclient");
PrintWriterout=newPrintWriter(newOutputStreamWriter(connection.getOutputStream(),"GBK"));
out.println(param);
out.close();
BufferedReaderin=newBufferedReader(newInputStreamReader(connection
.getInputStream(),"GBK"));
StringinputLine;
while((inputLine=in.readLine())!=null){
bankXmlBuffer.append(inputLine);
}
in.close();
tempStr=bankXmlBuffer.toString();
}
catch(Exceptione)
{
System.out.println("發送GET請求出現異常!"+e);
e.printStackTrace();
}finally{
if(url_con!=null)
url_con.disconnect();
}
returntmpeStr;
}
總結:多練習代碼,熟練之後才能更快速的去了解代碼的學習的方法。多去獲取一些思維方面的書籍可以看看。
⑥ Java請求一個URL。獲取網站返回的數據。這個返回數據是些什麼內容
如果你確定訪問是個網頁,那返回的就是這個網頁的HTML頁面代碼,這中代碼都是靠瀏覽器解析執行,然後才變成了我們看到的頁面的樣子
⑦ java根據url抓取html頁面內容,怎麼解析chunked 方式
先獲取頁面
String html = getContent(url, Constants.ENCODING_UTF8);
解析頁面 Document doc=Jsoup.parse(html);
然後你獲取相應的標簽String tag =doc.getElementsByTag("title").first().text();
如果標簽很多不一樣你就得判斷了,還有看看有什麼相同的地方吧,我抓取網頁數據的時候最煩的就是格式不一樣的,好多標簽不一樣的,只能判斷,找到共同點,個別的單個處理,