Mam na sieci pewną stronkę, chciałbym by jeden z hostów sieci "wciskał" co pewien czas przycisk na niej się znajdujący.
Przechwyciłem poprzez WS pakiet HTTP z metodą POST, wygląda on tak:
POST /goform/main_att HTTP/1.1
Host: 192.168.100.254
Connection: keep-alive
Content-Length: 33
Cache-Control: max-age=0
Origin: http://192.168.100.254
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.19 (KHTML, like Gecko) Chrome/18.0.1025.168 Safari/535.19
Content-Type: application/x-www-form-urlencoded
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Referer: http://192.168.100.254/main_att.asp
Accept-Encoding: gzip,deflate,sdch
Accept-Language: pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4
Accept-Charset: ISO-8859-2,utf-8;q=0.7,*;q=0.3
SADownStartingFrequency=138000000
Mój błędny program dotychczas wygląda w ten sposób:
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
public class jmain {
public static void main(String[] args) {
String urlParameters = "gofrom/main_att";
String request = "http://192.168.100.254/main_att.asp";
try {
URL url = new URL(request);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setDoOutput(true);
connection.setDoInput(true);
connection.setInstanceFollowRedirects(false);
connection.setRequestMethod("POST");
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("charset", "utf-8");
connection.setRequestProperty("Content-Length", "" + Integer.toString(urlParameters.getBytes().length));
connection.setUseCaches (false);
DataOutputStream wr = new DataOutputStream(connection.getOutputStream ());
wr.writeBytes(urlParameters);
wr.flush();
wr.close();
connection.disconnect();
} catch (Exception e){
System.out.println("Connection Error!");
}
}
}
Nie zamierzam pobierać zwracanej strony, wystarczy samo wysłanie metody POST.
Za wszelką pomoc z góry dziękuję.
Pozdrawiam.