Hallo Forum
Ich muss euch mal wieder mit einem Problem von mir belästigen . Ich habe mich nun in den vergangenen Tage mal etwas mit den ganzen HTTPRequests in Java beschäftigt. Ich habe es auch schon zum laufen gebracht. Den aktuellen Stand könnt ihr dem unten angehängten Code entnehmen.
Das Problem: Ich kann zwar problemlos Verbinden, etwas senden und die Antwort empfangen, aber immer nur einmal. Danach muss ich eine neue Verbindung aufbauen und wieder dasselbe. Das Problem ich arbeite im PHP-Script mit einer Session, die den User identifiziert. Jedoch bekomme ich nun bei jedem neuen Connect eine neue Session-ID. Wie kann ich machen, dass ich mehrere Request, etc senden kann, mit derselben Verbindung?
Class: PhpPostConnect.java
Class: ManageTracks.java
PHP-Script: service.php
Ich muss euch mal wieder mit einem Problem von mir belästigen . Ich habe mich nun in den vergangenen Tage mal etwas mit den ganzen HTTPRequests in Java beschäftigt. Ich habe es auch schon zum laufen gebracht. Den aktuellen Stand könnt ihr dem unten angehängten Code entnehmen.
Das Problem: Ich kann zwar problemlos Verbinden, etwas senden und die Antwort empfangen, aber immer nur einmal. Danach muss ich eine neue Verbindung aufbauen und wieder dasselbe. Das Problem ich arbeite im PHP-Script mit einer Session, die den User identifiziert. Jedoch bekomme ich nun bei jedem neuen Connect eine neue Session-ID. Wie kann ich machen, dass ich mehrere Request, etc senden kann, mit derselben Verbindung?
Class: PhpPostConnect.java
Code:
import java.io.*;
import java.net.*;
public class PhpPostConnect {
/** Contains the URL to the PHP-Script */
private URL sitepath;
/** The Connection to the URL */
private URLConnection con;
public PhpPostConnect() {
}
/*
* Construct which also define the targed URL
*/
public PhpPostConnect(URL sitepath) {
this.sitepath = sitepath;
}
/*
* Set the URL to the target PHP-Script
*/
public void setSitePath(URL sitepath) {
this.sitepath = sitepath;
}
/*
* To get the target-URL
*/
public URL getSitePath() {
return this.sitepath;
}
/*
* Sending data to the target-URL
*/
public void send(String data) throws IOException {
if (con == null) {
con = sitepath.openConnection();
}
if (con.getDoOutput() == false) {
con.setDoOutput(true);
}
OutputStream out = con.getOutputStream();
out.write(data.getBytes());
out.flush();
}
/*
* Reading incoming data from the target-URL
*/
public String read() throws IOException {
if (con == null) {
con = sitepath.openConnection();
}
InputStream in = con.getInputStream();
StringBuffer incoming = new StringBuffer();
byte[] b = new byte[4096];
for (int n; (n = in.read(b)) != -1;) {
incoming.append(new String(b, 0, n));
}
return incoming.toString().trim();
}
}
Class: ManageTracks.java
Code:
package songtracker;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
public class ManageTracks {
private PhpPostConnect con = new PhpPostConnect();
public ManageTracks() {
try {
URL url = new URL("http://localhost/service.php");
con.setSitePath(url);
try {
con.send("module=login&username=time-splinter&password=134");
System.out.println(con.read());
} catch (IOException e) {
e.printStackTrace();
}
} catch (MalformedURLException e) {
e.printStackTrace();
}
}
public static void main(String[] args) throws Exception {
ManageTracks mt = new ManageTracks();
}
}
PHP-Script: service.php
Code:
<?php
session_start();
if(strtolower($_SERVER['REQUEST_METHOD']) == 'post') {
//
// CHOOSE MODULE
//
switch($_POST["module"])
{
case "login": login();
break;
default: echo"no module choosen! ".session_id();
break;
}
}
/*-----------------------------------*/
/* Login user on server */
/* ----------------------------------*/
/* -100 - Login Failed */
/* -101 - Already logged in */
/* +100 - Login successfull */
/*-----------------------------------*/
function login() {
require_once("includes/config.inc.php");
if(isset($_SESSION["user_id"]) && $_SESSION["user_id"] > 0)
{
if(login == ok)
{
echo 100;
$_SESSION["user_id"] = $user["user_id"];
$_SESSION["user_name"] = $user["user_name"];
}
else
{
echo -100;
}
}
else
{
echo -101;
}
}
?>