[ Príspevkov: 11 ] 
AutorSpráva
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12 | 12
NapísalOffline : 15.09.2007 8:58 | HTTP upload cez JAVA Applet

Caute, potreboval by som pomoct.. mam JAVA applet, v ktorom pouzivam sockety na komunikaciu s HTTP.. no a potrebujem vediet, ako mam "zostavit" HTTP poziadavku na server tak, ako by to spravil prehliadac, keby posielal serveru nejaky subor cez POST... nieco v tvare <input type="file" name="subor">.. skusal som hladat na googli ale jedina uzitocna vec co mi na toto nasiel tak bola kompletna RFC specifikacia HTTP protokolu na desiatky stran.. no a ja potrebujem akurat tento jeden navod...

Dufam ze som to napisal zrozumitelne :)


Offline

Užívateľ
Užívateľ
HTTP upload cez JAVA Applet

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 15.09.2007 10:58 | HTTP upload cez JAVA Applet

Doporučujem ti skúsiť Firefox a rozšírenie Live HTTP headers, vďaka nemu môžeš sledovať komunikáciu medzi browserom a serverom.
Vyzeralo by to asi takto:
Kód:
POST /test/up.php HTTP/1.1
Host: localhost:80
Content-Type: multipart/form-data; boundary=---------------------------9759188801937
Content-Length: 205
-----------------------------9759188801937
Content-Disposition: form-data; name="upfile"; filename="upsubor.txt"
Content-Type: text/plain

bla bla
line2
-----------------------------9759188801937--


Odosielal sa textový súbor s obsahom "bla bla\13\10line 2", boundary je deliaca hranica ohraničujúca súbor spolu s jeho hlavičkou.
Lepší obraz získaš práve použitím Live http, headery sú ľahko pochopiteľné.


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12 | 12
Napísal autor témyOffline : 15.09.2007 11:36 | HTTP upload cez JAVA Applet

Hmm mam tomu rozumiet tak ze tento riadok:
Content-Type: multipart/form-data; boundary=---------------------------9759188801937
urcuje serveru hranicu formulara alebo coho? Namiesto toho si tam ale mozem dat co chcem nie?
No a potom uz len napisem toto:
Content-Disposition: form-data; name="upfile"; filename="upsubor.txt"
Content-Type: text/plain
a potom pole bytov co bude obsah suboru? a nakoniec zas tu hranicu?

PS: text/plain sa tam nehodi, ja potrebujem prenasat subory v binarnom formate.. ako sa to zmeni?


Offline

Užívateľ
Užívateľ
HTTP upload cez JAVA Applet

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 15.09.2007 11:53 | HTTP upload cez JAVA Applet

Citácia:
Hmm mam tomu rozumiet tak ze tento riadok:
Content-Type: multipart/form-data; boundary=---------------------------9759188801937
urcuje serveru hranicu formulara alebo coho? Namiesto toho si tam ale mozem dat co chcem nie?

Boundary oddeľuje jednotlivé časti pri požiadavkoch, ktoré kombinujú text a iné dáta (obrázky, súbory...). Môže to byť ľubovoľný reťazec, ktorý sa však nenachádza v dátach, ktoré ohraničuje.

Citácia:
No a potom uz len napisem toto:
Content-Disposition: form-data; name="upfile"; filename="upsubor.txt"
Content-Type: text/plain
a potom pole bytov co bude obsah suboru? a nakoniec zas tu hranicu?

áno

Citácia:
PS: text/plain sa tam nehodi, ja potrebujem prenasat subory v binarnom formate.. ako sa to zmeni?

Nastavíš content-type na inú hodnotu. Prakticky na tom nezáleží, dôležité je, aby skript, čo spracúva dáta, vedel o aké dáta ide. Potom nasledujú binárne dáta, ukončené hranicou.

Citácia:
skusal som hladat na googli ale jedina uzitocna vec co mi na toto nasiel tak bola kompletna RFC specifikacia HTTP protokolu na desiatky stran

RFC 1867 - Form-based File Upload in HTML


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12 | 12
Napísal autor témyOffline : 15.09.2007 13:27 | HTTP upload cez JAVA Applet

No nejak to nechce zobrat..
Toto je vystup:
Kód:
"C:\Program Files\Java\jdk1.6.0_02\bin\javaw" -classpath "C:\Documents and Settings\Michal\Desktop\upload\classes;C:\Program Files\Java\jdk1.6.0_02\lib\tools.jar;C:\Program Files\Java\jdk1.6.0_02\lib\htmlconverter.jar;C:\Program Files\Java\jdk1.6.0_02\lib\jconsole.jar;C:\Program Files\Java\jdk1.6.0_02\lib\dt.jar;C:\Program Files\Java\jdk1.6.0_02\demo\scripting\jconsole-plugin\jconsole-plugin.jar;C:\Program Files\Java\jdk1.6.0_02\demo\jfc\Java2D\Java2Demo.jar;C:\Program Files\Java\jdk1.6.0_02\demo\jfc\CodePointIM\CodePointIM.jar;C:\Program Files\Java\jdk1.6.0_02\demo\plugin\jfc\CodePointIM\CodePointIM.jar;C:\Program Files\Java\jdk1.6.0_02\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\Program Files\Java\jdk1.6.0_02\sample\jnlp\servlet\jnlp.jar;C:\Program Files\Java\jdk1.6.0_02\sample\jnlp\servlet\jnlp-servlet.jar;C:\Program Files\Java\jdk1.6.0_02\sample\jnlp\servlet\jardiff.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\deploy.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\plugin.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\sunjce_provider.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\sunpkcs11.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\sunmscapi.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\localedata.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\ext\dnsns.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\rt.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\im\thaiim.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\im\indicim.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\javaws.jar;C:\Program Files\Java\jdk1.6.0_02\jre\lib\jce.jar;C:\Program Files\JBuilder\lib\jbuilder.jar;C:\Program Files\JBuilder\lib\primetime.jar"  com.borland.jbuilder.runtime.applet.AppletTestbed 400 300 upload.Main
Query iduci na server:

POST /!pages/upload.php HTTP/1.1
HOST: www.austyn.sk
Content-Type: multipart/form-data; boundary=---------------------------9759188801937
Content-Length: 205
-----------------------------9759188801937
Content-Disposition: form-data; name="subor"; filename="RCT3.lnk"
Content-Type: application/octet-stream
adhfgafkashfkjahfkahafaksjfhakjfhahjkfajkfa
-----------------------------9759188801937


HTTP/1.1 400 Bad Request
Date: Sat, 15 Sep 2007 11:25:34 GMT
Server: Apache/2.0.55 (Ubuntu) PHP/5.1.2 mod_ssl/2.0.55 OpenSSL/0.9.8a
Content-Length: 334
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
-----------------------------9759188801937</pre>
</p>
</body></html>



Offline

Užívateľ
Užívateľ
HTTP upload cez JAVA Applet

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 15.09.2007 14:34 | HTTP upload cez JAVA Applet

za ukončovacím boundary majú byť dve pomlčky:
Kód:
-----------------------------9759188801937--


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12 | 12
Napísal autor témyOffline : 15.09.2007 14:45 | HTTP upload cez JAVA Applet

Trochu som to upravil, teraz to vyzera takto:


Kód:
req = "POST /!pages/upload.php HTTP/1.1\r\n";
    req += "Host: www.austyn.sk\r\nUser-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; sk; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6\r\n";
    req += "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n";
    req += "Accept-Language: sk,cs;q=0.8,en-us;q=0.5,en;q=0.3\r\n";
    req += "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n";
    req += "Keep-Alive: 300\r\n";
    req += "Connection: keep-alive\r\n";
    req += "Referer: http://www.upnito.sk/\r\n";
    req += "Content-Type: multipart/form-data; boundary=gGg\r\n";
    req += "Content-Length: 500\r\n";
    req += "--gGg\r\n";
    req += "Content-Disposition: form-data; name=\"subor\"; filename=\"msvcp80.txt\"\r\n";
    req += "Content-Type: text/plain\r\n\n";
    req += "abcdef\r\n";
    req += "--gGg--\r\n\r\n";



Odpoved:
Kód:
<p>Your browser sent a request that this server could not understand.<br />
Request header field is missing ':' separator.<br />
<pre>
--gGg</pre>
</p>

Z coho vyplyva, ze mu vadi ten zaciatocny boundary.. To ale nechapem, lebo ked si to pozriem v FireFoxe cez ten doplnok tak ten zaciatocny boundary tam je... Retazec gGg neni obsiahnuty nikde (vlastne vsak to aj vidis, zatial tam neposielam obsah suboru ale len konstantny text..


Offline

Užívateľ
Užívateľ
HTTP upload cez JAVA Applet

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 15.09.2007 18:10 | HTTP upload cez JAVA Applet

Kód:
req += "Content-Type: text/plain\r\n\n";

jedno \n navyše


Offline

Užívateľ
Užívateľ
HTTP upload cez JAVA Applet

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 15.09.2007 21:31 | HTTP upload cez JAVA Applet

imcold píše:
za ukončovacím boundary majú byť dve pomlčky:
Kód:
-----------------------------9759188801937--

Aby som to uviedol na pravú mieru - dve pomlčky majú byť aj pred boundary. Chyba mojej nepozornosti... každopádne v rfc je to spávne:
Kód:
Content-type: multipart/form-data, boundary=AaB03x
--AaB03x
content-disposition: form-data; name="pics"; filename="file1.txt"
Content-Type: text/plain

... contents of file1.txt ...
--AaB03x--


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 04.11.06
Prihlásený: 28.12.09
Príspevky: 107
Témy: 12 | 12
Napísal autor témyOffline : 16.09.2007 7:32 | HTTP upload cez JAVA Applet

no mam tam 2 pomlcky.. vsimni si ze Boundary=gGg, potom tam je --gGg a text a nakoniec --gGg--.. ako vidis v odpovedi servra, asi mu vadi to prve --gGg nejakym sposobom, pretoze k tomu text-plain sa uz ani nedostane, a to dalsie \n som tam dal preto, lebo vsade (v live http headers aj v tom rfc je medzi text-plain a samotnym obsahom jeden riadok prazdny.. no ale nefungovalo to ani ked som tam ten prazdny riadok nedal. skusim tvoju citaciu z rfc totalne copypastnut bez jedinej zmeny (akurat filename musi ist do jedneho riadku s content-disposition takze to zmenim) ze ci mi to server zoberie..


Offline

Užívateľ
Užívateľ
HTTP upload cez JAVA Applet

Registrovaný: 28.04.07
Prihlásený: 03.11.09
Príspevky: 133
Témy: 1 | 1
NapísalOffline : 16.09.2007 9:13 | HTTP upload cez JAVA Applet

Ten prázdny riadok má byť \r\n, nie len \n (viď rfc). Prázdny riadok má byť aj medzi request headerom a boundary
Kód:
req += "Content-Length: 500\r\n";
req += "\r\n"
req += "--gGg\r\n";

Neviem síce otestovať tvoj kód, ale napísal som php skript, s ktorým si môžeš porovnať svoj request header, potažmo výstup: upload.php.


 [ Príspevkov: 11 ] 


HTTP upload cez JAVA Applet



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

JAVA applet ulozit data

v Assembler, C, C++, Pascal, Java

3

745

15.01.2011 15:45

juho

V tomto fóre nie sú ďalšie neprečítané témy.

Java applet - rozdelenie komponent

v Assembler, C, C++, Pascal, Java

0

336

19.04.2010 23:27

mysacek

V tomto fóre nie sú ďalšie neprečítané témy.

Presmerovanie HTTP na HTTPS cez CNAME?

v Webhosting a servery

6

568

29.05.2017 12:55

McLovin

V tomto fóre nie sú ďalšie neprečítané témy.

Zmena mime typu cez HTTP s ASP.net

v Technológia .NET

1

1745

11.07.2008 13:31

ProJee

V tomto fóre nie sú ďalšie neprečítané témy.

upload cez fibernet

v Siete

6

879

09.03.2011 8:32

johny29

V tomto fóre nie sú ďalšie neprečítané témy.

An AJAX HTTP error occurred. HTTP Result Code: 500

v Redakčné systémy

1

389

26.04.2014 19:29

chrono

V tomto fóre nie sú ďalšie neprečítané témy.

PHP image upload cez FTP

v PHP, ASP

2

637

20.03.2009 19:02

snake2

V tomto fóre nie sú ďalšie neprečítané témy.

upload na ftp cez prikazovy riadok

v Ostatné

2

605

06.06.2009 23:39

br4n0

V tomto fóre nie sú ďalšie neprečítané témy.

Upload pdf na server cez PHP

v PHP, ASP

3

457

28.03.2013 0:07

Merlin_sk

V tomto fóre nie sú ďalšie neprečítané témy.

Java obrázok cez netbeans

v Assembler, C, C++, Pascal, Java

2

392

30.09.2013 14:03

Unlink

V tomto fóre nie sú ďalšie neprečítané témy.

tvorba www cez java

v Mobilné zariadenia

0

833

19.04.2007 20:54

ma®tin

V tomto fóre nie sú ďalšie neprečítané témy.

Applet

v Assembler, C, C++, Pascal, Java

7

314

16.04.2013 19:11

XOLOO

V tomto fóre nie sú ďalšie neprečítané témy.

Nejde mi sťahovať cez web prehliadač + problémy s java

v Ostatné programy

2

553

27.10.2014 18:56

mag19981

V tomto fóre nie sú ďalšie neprečítané témy.

Stiahnuť applet

v JavaScript, VBScript, Ajax

0

351

08.12.2011 17:55

juro41

V tomto fóre nie sú ďalšie neprečítané témy.

http://www.nieco.sk presmerovane na http://nieco.sk

v PHP, ASP

8

669

27.09.2007 19:57

qacer

V tomto fóre nie sú ďalšie neprečítané témy.

Rozdiel medzi Java Standard a Java EE

v Assembler, C, C++, Pascal, Java

1

904

02.04.2014 12:41

XOLOO



© 2005 - 2024 PCforum, edited by JanoF