• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Wysyłanie danych metodą POST

Object Storage Arubacloud
0 głosów
1,357 wizyt
pytanie zadane 16 października 2015 w Java przez SkymaxPlay Użytkownik (720 p.)
zamknięte 17 października 2015 przez SkymaxPlay

Witam,

mam problem otóż chcę wysłać dane porzez formularz HTML. Mam program w Java, który ma wysyłać taki formularz metodą POST. Jednak nie wysyła. Może wie jak to zrobić by działało?

 try {
            System.out.println("wysylanie...");
            String urlParameters = "entry.715269192=testujemy dane";
            byte[] postData = urlParameters.getBytes(StandardCharsets.UTF_8);
            int postDataLength = postData.length;
            String request = "https://docs.google.com/forms/d/1I4J54d4ASuwMZgxgnUfMg7YlcNclNrKC6Knfcsvvh5Q/formResponse";
            URL url = new URL(request);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setDoOutput(true);
            conn.setInstanceFollowRedirects(false);
            conn.setRequestMethod("POST");
            conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
            conn.setRequestProperty("charset", "utf-8");
            conn.setRequestProperty("Content-Length", Integer.toString(postDataLength));
            conn.setUseCaches(false);
            try (DataOutputStream wr = new DataOutputStream(conn.getOutputStream())) {
                wr.write(postData);
            }
            System.out.println("koniec");
        }catch (Exception e) {
            e.printStackTrace();
        }

 

komentarz zamknięcia: należy dodać linijkę kodu która pobierze jakąś informację z przesłania  danych (w komentarzu moim jest przykład)

2 odpowiedzi

0 głosów
odpowiedź 16 października 2015 przez event15 Szeryf (93,790 p.)
String request = "<a href="https://docs.google.com/forms/d/1I4J54d4ASuwMZgxgnUfMg7YlcNclNrKC6Knfcsvvh5Q/formResponse" ;"="" rel="nofollow" target="_blank" original-title="" title="">https://docs.google.com/forms/d/1I4J54d4ASuwMZgxgnUfMg7YlcNclNrKC6Knfcsvvh5Q/formResponse";</a>

A java ci sie o to nie sra?

komentarz 16 października 2015 przez event15 Szeryf (93,790 p.)

Bo dziwne żeby pozwalała zagnieżdżać cudzysłowy: " " wink

komentarz 16 października 2015 przez SkymaxPlay Użytkownik (720 p.)
hmmmm. może temu że to przezDODANIE TEGO KODU TUTAJ jako kod Java daje te znaki z HTML?????? Nie pomyślałeś? Jest bez <a href itp
komentarz 16 października 2015 przez SkymaxPlay Użytkownik (720 p.)

No ja już nie wiem. Dodałem linijkę do sprawdzenia czy jest błąd:

System.out.println(conn.getResponseCode());

i teraz działa xDD Jak to jest możliwe lol

0 głosów
odpowiedź 16 października 2015 przez furas Maniak (53,800 p.)
edycja 16 października 2015 przez furas

A na jakiej podstawie twierdzisz, że nie wysyła ?

Może wysyła tylko serwer nie chce tego przyjąć bo nie wysyłasz wszystkiego czego on wymaga ?

Zwykle w takich zadaniach najpierw w przeglądarce (Firefox, dodatek Firebug) obserwuje jakie dane są przesyłane między przeglądarką i serwerem. Potem staram aby mój program wysyłał dokładnie to samo. Czasami trzeba dodać nagłowek "User-Agent", czasami są ukryte pola w formularzu, itd.

Serwer http://httpbin.org/ można wykorzystać do testów bo odsyła (jako JSON) wszelkie informacje jakie dostał od Twojego programu i można to porównać z tym co przesyła przeglądarka do właściwego serwera.

---

EDIT: nie używam Javy więc nie powiem czy Twój kod jest poprawny i jak go naprawić.

komentarz 16 października 2015 przez SkymaxPlay Użytkownik (720 p.)

No ja już nie wiem. Dodałem linijkę do sprawdzenia czy jest błąd:

System.out.println(conn.getResponseCode());

i teraz działa xDD Jak to jest możliwe lol

komentarz 16 października 2015 przez furas Maniak (53,800 p.)
Jak mówiłem nie robię tego w Javie ale może stosuje on zasadę "wywołania leniwego" - tzn wykonuje zadanie dopiero gdy poprosisz o odpowiedź.

Zawsze biorę też pod uwagę, że jakiegoś dnia serwer może nie działać lub mieć inną usterkę więc nie zawsze da się z nim pracować :)
komentarz 16 października 2015 przez SkymaxPlay Użytkownik (720 p.)
też mi coś w tym stylu przyszło do głowy że jak nie chcesz odpowiedzi to tego nie wyśle. Poza tym nie miał usterki bo naprzemian usuwałem i dodawałem tą linijkę i jak nie było to działało a jak była to działała.

Podobne pytania

0 głosów
2 odpowiedzi 180 wizyt
pytanie zadane 4 maja 2016 w PHP przez Kuba Skoneczny Obywatel (1,780 p.)
0 głosów
0 odpowiedzi 140 wizyt
pytanie zadane 15 lutego 2017 w C i C++ przez Siweczek Nowicjusz (180 p.)
0 głosów
2 odpowiedzi 191 wizyt

92,584 zapytań

141,434 odpowiedzi

319,669 komentarzy

61,967 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...