欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

通過(guò)java代碼發(fā)送請(qǐng)求 通過(guò)java代碼發(fā)送請(qǐng)求文件

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

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

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

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

Java代碼

public void doPost(HttpServletRequest request HttpServletResponse response)

throws ServletException IOException {

//獲取輸入流 是HTTP協(xié)議中的實(shí)體內(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();

}

來(lái)一個(gè)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 然后二個(gè)文件是二個(gè)簡(jiǎn)單的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)有如下幾點(diǎn)特征

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

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

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

然后就是回車換行符

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

最后一行是 da e c 注意最后多了二個(gè) ;

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

Java代碼 public void upload(){

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

try {

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

URL url = new URL( );

HttpURLConnection conn = (HttpURLConnection) url openConnection();

// 發(fā)送POST請(qǐng)求必須設(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()); //多個(gè)文件時(shí) 二個(gè)文件之間加入這個(gè)

in close();

}

out write(end_data);

out flush();

out close();

// 定義BufferedReader輸入流來(lái)讀取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請(qǐng)求出現(xiàn)異常! + e);

e printStackTrace();

}

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

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

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

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

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

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

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

/**

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

*

* @param url

* 發(fā)送請(qǐng)求的 URL

* @param param

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

* @return 所代表遠(yuǎn)程資源的響應(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);

// 打開(kāi)和URL之間的連接

URLConnection conn = realUrl.openConnection();

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

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請(qǐng)求必須設(shè)置如下兩行

conn.setDoOutput(true);

conn.setDoInput(true);

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

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

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

out.print(param);

// flush輸出流的緩沖

out.flush();

// 定義BufferedReader輸入流來(lái)讀取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 請(qǐng)求出現(xiàn)異常!"+e);

e.printStackTrace();

}

//使用finally塊來(lái)關(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請(qǐng)求時(shí)能不能只發(fā)送請(qǐng)求而不接受網(wǎng)站返回的數(shù)據(jù)?

個(gè)人想法是這樣的 你用的是HttpURLConnection 類

也就是說(shuō)這個(gè)協(xié)議是http協(xié)議

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

可以不用http請(qǐng)求看看比如只用sockt建立一個(gè)

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

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

要不推薦個(gè)工具給我吧

java 怎么發(fā)送一個(gè)http請(qǐng)求

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

然后線上實(shí)力Demo:

網(wǎng)頁(yè)標(biāo)題:通過(guò)java代碼發(fā)送請(qǐng)求 通過(guò)java代碼發(fā)送請(qǐng)求文件
標(biāo)題路徑:http://chinadenli.net/article48/hgcgep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁(yè)設(shè)計(jì)公司、靜態(tài)網(wǎng)站搜索引擎優(yōu)化、營(yíng)銷型網(wǎng)站建設(shè)做網(wǎng)站、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)