真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

通過java代碼發(fā)送請求 通過java代碼發(fā)送請求文件

Java利用HttpURLConnection發(fā)送post請求上傳文件

在頁面里實現(xiàn)上傳文件不是什么難事 寫個form 加上enctype = multipart/form data 在寫個接收的就可以了 沒什么難的 如果要用 HttpURLConnection來實現(xiàn)文件上傳 還真有點搞頭 : )

10多年的門源網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應(yīng)快,48小時及時工作處理。全網(wǎng)整合營銷推廣的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整門源建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。創(chuàng)新互聯(lián)從事“門源網(wǎng)站設(shè)計”,“門源網(wǎng)站推廣”以來,每個客戶項目都認(rèn)真落實執(zhí)行。

先寫個servlet把接收到的 HTTP 信息保存在一個文件中 看一下 form 表單到底封裝了什么樣的信息

Java代碼

public void doPost(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException {

//獲取輸入流 是HTTP協(xié)議中的實體內(nèi)容

ServletInputStream? in=request getInputStream();

//緩沖區(qū)

byte buffer[]=new byte[ ];

FileOutputStream out=new FileOutputStream( d:\\test log );

int len=sis read(buffer );

//把流里的信息循環(huán)讀入到file log文件中

while( len!= ){

out write(buffer len);

len=in readLine(buffer );

}

out close();

in close();

}

來一個form表單

form name= upform action= upload do method= POST

enctype= multipart/form data

參數(shù)input type= text name= username /br/

文件 input type= file name= file /br/

文件 input type= file name= file /br/

input type= submit value= Submit /

br /

/form

假如我參數(shù)寫的內(nèi)容是hello word 然后二個文件是二個簡單的txt文件 上傳后test log里如下

Java代碼

da e c

Content Disposition: form data; name= username

hello word

da e c

Content Disposition: form data; name= file ; filename= D:\haha txt

Content Type: text/plain

haha

hahaha

da e c

Content Disposition: form data; name= file ; filename= D:\huhu txt

Content Type: text/plain

messi

huhu

da e c

研究下規(guī)律發(fā)現(xiàn)有如下幾點特征

第一行是 d b bc 作為分隔符 然后是 \r\n 回車換行符 這個 d b bc 分隔符瀏覽器是隨機生成的

第二行是Content Disposition: form data; name= file ; filename= D:\huhu txt ;name=對應(yīng)input的name值 filename對應(yīng)要上傳的文件名(包括路徑在內(nèi))

第三行如果是文件就有Content Type: text/plain 這里上傳的是txt文件所以是text/plain 如果上穿的是jpg圖片的話就是image/jpg了 可以自己試試看看

然后就是回車換行符

在下就是文件或參數(shù)的內(nèi)容或值了 如 hello word

最后一行是 da e c 注意最后多了二個 ;

有了這些就可以使用HttpURLConnection來實現(xiàn)上傳文件功能了

Java代碼 public void upload(){

ListString list? = new ArrayListString();? //要上傳的文件名 如 d:\haha doc 你要實現(xiàn)自己的業(yè)務(wù) 我這里就是一個空list

try {

String BOUNDARY = d a d c ; // 定義數(shù)據(jù)分隔線

URL url = new URL( );

HttpURLConnection conn = (HttpURLConnection) url openConnection();

// 發(fā)送POST請求必須設(shè)置如下兩行

conn setDoOutput(true);

conn setDoInput(true);

conn setUseCaches(false);

conn setRequestMethod( POST );

conn setRequestProperty( connection Keep Alive );

conn setRequestProperty( user agent Mozilla/ (patible; MSIE ; Windows NT ; SV ) );

conn setRequestProperty( Charsert UTF );

conn setRequestProperty( Content Type multipart/form data; boundary= + BOUNDARY);

OutputStream out = new DataOutputStream(conn getOutputStream());

byte[] end_data = ( \r\n + BOUNDARY + \r\n ) getBytes();// 定義最后數(shù)據(jù)分隔線

int leng = list size();

for(int i= ;ileng;i++){

String fname = list get(i);

File file = new File(fname);

StringBuilder *** = new StringBuilder();

*** append( );

*** append(BOUNDARY);

*** append( \r\n );

*** append( Content Disposition: form data;name=\ file +i+ \ ;filename=\ + file getName() + \ \r\n );

*** append( Content Type:application/octet stream\r\n\r\n );

byte[] data = *** toString() getBytes();

out write(data);

DataInputStream in = new DataInputStream(new FileInputStream(file));

int bytes = ;

byte[] bufferOut = new byte[ ];

while ((bytes = in read(bufferOut)) != ) {

out write(bufferOut bytes);

}

out write( \r\n getBytes()); //多個文件時 二個文件之間加入這個

in close();

}

out write(end_data);

out flush();

out close();

// 定義BufferedReader輸入流來讀取URL的響應(yīng)

BufferedReader reader = new BufferedReader(new InputStreamReader(conn getInputStream()));

String line = null;

while ((line = reader readLine()) != null) {

System out println(line);

}

} catch (Exception e) {

System out println( 發(fā)送POST請求出現(xiàn)異常! + e);

e printStackTrace();

}

lishixinzhi/Article/program/Java/hx/201311/27114

JAVA代碼發(fā)送HTTP請求問題(我想實現(xiàn)和服務(wù)器進行一次連接時發(fā)送兩次請求)

我覺得你這個問題的解決應(yīng)該是你的程序做一次這個網(wǎng)站的登陸,而且這個登陸的動作應(yīng)該是需要發(fā)生在你這段代碼以前,因為你這段代碼的動作其實只是訪問了一下那個網(wǎng)站,但是沒有任何的用戶或者是其他的信息。

一般來說你登陸以后,你會獲得一個token,用那個token就可以讓網(wǎng)站認(rèn)為你已經(jīng)登陸,然后改密碼什么就好辦了。建議你先抓一下IE的包看看是人家的通信是怎么樣的,然后用java做就好了?;蛘呤悄莻€網(wǎng)站有開發(fā)者文檔就最好了。

java如何向網(wǎng)頁發(fā)出請求,并接收

這是J2EE里面的內(nèi)容,你將form表單里面的URL改為服務(wù)器里面的servlet的訪問URL,服務(wù)器就可以處理html發(fā)過來的請求,然后由servlet跳轉(zhuǎn)到原來訪問網(wǎng)頁,并將處理好的數(shù)據(jù)一起發(fā)過來,原來html可以通過AJAX編程來接受來自服務(wù)器的請求,并進行控制顯示?。?!

如何使用java發(fā)送post請求

/**

* 向指定 URL 發(fā)送POST方法的請求

*

* @param url

* 發(fā)送請求的 URL

* @param param

* 請求參數(shù),請求參數(shù)應(yīng)該是 name1=value1name2=value2 的形式。

* @return 所代表遠程資源的響應(yīng)結(jié)果

*/

public static String sendPost(String url, String param) {

PrintWriter out = null;

BufferedReader in = null;

String result = "";

try {

URL realUrl = new URL(url);

// 打開和URL之間的連接

URLConnection conn = realUrl.openConnection();

// 設(shè)置通用的請求屬性

conn.setRequestProperty("accept", "*/*");

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("user-agent",

"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 發(fā)送POST請求必須設(shè)置如下兩行

conn.setDoOutput(true);

conn.setDoInput(true);

// 獲取URLConnection對象對應(yīng)的輸出流

out = new PrintWriter(conn.getOutputStream());

// 發(fā)送請求參數(shù)

out.print(param);

// flush輸出流的緩沖

out.flush();

// 定義BufferedReader輸入流來讀取URL的響應(yīng)

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

String line;

while ((line = in.readLine()) != null) {

result += line;

}

} catch (Exception e) {

System.out.println("發(fā)送 POST 請求出現(xiàn)異常!"+e);

e.printStackTrace();

}

//使用finally塊來關(guān)閉輸出流、輸入流

finally{

try{

if(out!=null){

out.close();

}

if(in!=null){

in.close();

}

}

catch(IOException ex){

ex.printStackTrace();

}

}

return result;

}

JAVA代碼給網(wǎng)站發(fā)送HTTP請求時能不能只發(fā)送請求而不接受網(wǎng)站返回的數(shù)據(jù)?

個人想法是這樣的 你用的是HttpURLConnection 類

也就是說這個協(xié)議是http協(xié)議

超文本傳輸就是你發(fā)送了一個請求然后服務(wù)器給你答復(fù),所以只要你把包發(fā)出去一定有響應(yīng)

可以不用http請求看看比如只用sockt建立一個

另外有一個URLConnection 就是HttpURLConnection 的父類存在一個setDoInput方法 你看看能不能通過這個來設(shè)置

我的抓包工具不能用所以代碼沒法幫你調(diào)

要不推薦個工具給我吧

java 怎么發(fā)送一個http請求

這里有整套的Java發(fā)送HTTP請求的代碼,包括Post、Get、Delete、Put、Trace、Head、Options請求方法,鏈接如下:

然后線上實力Demo:


當(dāng)前名稱:通過java代碼發(fā)送請求 通過java代碼發(fā)送請求文件
文章起源:http://weahome.cn/article/hgcgep.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部