Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ 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
Príspevok NapísalOffline : 15.09.2007 8:58

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
Príspevok NapísalOffline : 15.09.2007 10:58

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
Príspevok Napísal autor témyOffline : 15.09.2007 11:36

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
Príspevok NapísalOffline : 15.09.2007 11:53

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
Príspevok Napísal autor témyOffline : 15.09.2007 13:27

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
Príspevok NapísalOffline : 15.09.2007 14:34

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
Príspevok Napísal autor témyOffline : 15.09.2007 14:45

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
Príspevok NapísalOffline : 15.09.2007 18:10

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
Príspevok NapísalOffline : 15.09.2007 21:31

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
Príspevok Napísal autor témyOffline : 16.09.2007 7:32

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
Príspevok NapísalOffline : 16.09.2007 9:13

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.


Odpovedať na tému [ Príspevkov: 11 ] 


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

706

15.01.2011 15:45

juho Zobrazenie posledných príspevkov

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

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

0

304

19.04.2010 23:27

mysacek Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Presmerovanie HTTP na HTTPS cez CNAME?

v Webhosting a servery

6

529

29.05.2017 12:55

McLovin Zobrazenie posledných príspevkov

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

1700

11.07.2008 13:31

ProJee Zobrazenie posledných príspevkov

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

v Siete

6

833

09.03.2011 8:32

johny29 Zobrazenie posledných príspevkov

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

354

26.04.2014 19:29

chrono Zobrazenie posledných príspevkov

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

v PHP, ASP

2

607

20.03.2009 19:02

snake2 Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Upload pdf na server cez PHP

v PHP, ASP

3

397

28.03.2013 0:07

Merlin_sk Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. upload na ftp cez prikazovy riadok

v Ostatné

2

568

06.06.2009 23:39

br4n0 Zobrazenie posledných príspevkov

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

v Mobilné zariadenia

0

794

19.04.2007 20:54

ma®tin Zobrazenie posledných príspevkov

V tomto fóre nie sú ďalšie neprečítané témy. Java obrázok cez netbeans

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

2

348

30.09.2013 14:03

Unlink Zobrazenie posledných príspevkov

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

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

7

283

16.04.2013 19:11

XOLOO Zobrazenie posledných príspevkov

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

514

27.10.2014 18:56

mag19981 Zobrazenie posledných príspevkov

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

v JavaScript, VBScript, Ajax

0

317

08.12.2011 17:55

juro41 Zobrazenie posledných príspevkov

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

632

27.09.2007 19:57

qacer Zobrazenie posledných príspevkov

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

840

02.04.2014 12:41

XOLOO Zobrazenie posledných príspevkov


Nemôžete zakladať nové témy v tomto fóre
Nemôžete odpovedať na témy v tomto fóre
Nemôžete upravovať svoje príspevky v tomto fóre
Nemôžete mazať svoje príspevky v tomto fóre

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra