Gå til innhold

[Løst]Http's POST med Java HttpURLConnection


Anbefalte innlegg

Som topic sier har jeg noen problemer med å bruke http's POST med java. Tanken bak det hele er å lære seg litt men nå står jeg fast. Koden som er blitt brukt ser du under og det den skal gjøre er:

 

Logge seg på der

http://aspnet.cs.sbu.edu/networks/piggy.html

 

også poste på den siden, la oss si "fisk" eller noe i feltet på den siden, også submitte, men jeg får det ikke til.

 

KODE

import java.util.*;
import java.io.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Post {

 private static String _searchBase = "http://aspnet.cs.sbu.edu/networks/piggy.html";

   public static String run() {
       PrintWriter wr;
       String result = null;
       HttpURLConnection huc = null;
       try {
           String data = URLEncoder.encode("phrase", "UTF-8") + "=" + URLEncoder.encode("loco", "UTF-8");
           URL url = new URL(_searchBase);
           huc = (HttpURLConnection)url.openConnection();
           huc.setRequestMethod("POST");
           huc.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; JVM)");
           huc.setRequestProperty("Pragma", "no-cache");
           huc.setDoOutput(true);
           huc.connect();
           huc.setFollowRedirects(true);
           wr = new PrintWriter(new BufferedWriter(new OutputStreamWriter(huc.getOutputStream(), "ISO-8859-1")), true);
           System.out.println(huc.getResponseMessage());
           wr.println(data);
           wr.println("\r\n");
           wr.flush();
           BufferedReader reader = new BufferedReader(new InputStreamReader(huc.getInputStream()));
           String line = null;
           while ((line = reader.readLine()) != null) {
               System.out.println(line);
               }
       }
       catch (Exception e) {
           return e.toString();
       } finally {
           if(huc != null) {
               huc.disconnect();
           }
       }
       if (result!=null) {}
       System.out.println(result);
       return result;
   }
}

 

hvis jeg har med wr.println("et eller annet"); så kommer ikke man aldri til while løkken, mens hvis den er ut kommentert og man ikke poster noe kommer url'en

Kom gjerne med noen konstruktive tilbakemeldinger på hvordan dette skal gjøres og hva jeg gjør feil.

 

Lagde et lite login script html ting, eller viser bare dataene på samme måte som url'en over, men jeg får fortsatt ikke til å poste noe, nå kommer samme html side opp, akkuratt som om jeg aldri postet noe som helst (i java programmet altså)

http://www.lousius.org/skole/topp.php

Endret av aC
Lenke til kommentar
  • 3 uker senere...
Videoannonse
Annonse

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...