Jo jungs,
ich mache gerade meinen einstieg in die Netzwerkprogrammierung und probiere ein bisschen mit Post und get herum, kann mir jemand erklären, was genau an meinem kleinen code Snipplet nicht funktioniert, und am besten, warum das so ist.... wäre seeehr nett, danke im Voraus
lg
Nicht missverstehen oder so, der Code ist nutzlos, er schlägt ständig beim compiler an, das ich ein objekt verwende, das nicht initialisiert wäre und das andere Problem baut darauf auf... ich arbeite an einem größeren Projekt, dass automatisch mit dem ergebnis einer Seite arbeitet, sie bestenfalls auswertet usw...
ich mache gerade meinen einstieg in die Netzwerkprogrammierung und probiere ein bisschen mit Post und get herum, kann mir jemand erklären, was genau an meinem kleinen code Snipplet nicht funktioniert, und am besten, warum das so ist.... wäre seeehr nett, danke im Voraus
lg
Java:
import java.io.*;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.BasicResponseHandler;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.client.*;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.conn.ConnectTimeoutException;
import org.apache.http.impl.client.DefaultHttpClient;
public class HttpConnect{
//URL der Anmeldemaske
private String url;
//URL in der action-Parameter des forms
private String postURL;
private String location;
private String session ="";
private String status = "Ready";
private String user;
private String pass;
private HttpClient client;
private HttpGet get;
private HttpPost post;
private boolean fatalError = false;
private String errorState = "";
public void setURL (String url,String posturl) {
this.url = url;
this.postURL = posturl;
}
public void setUsername (String Username) {
this.user = Username;
}
public void setPassword (String Password) {
this.pass = Password;
}
public void Connect()
{
client = new HttpClient();
get = new HttpGet ( url );
post = new HttpPost ( postURL );
}
public String getPage(String newURL)
{
String result = "";
try
{
get = new HttpGet(newURL);
client.executeMethod(get);
BufferedReader rd = new BufferedReader(
new InputStreamReader(get.getResponseBodyAsStream()));
String line;
while ((line = rd.readLine()) != null)
{
line += rd.readLine();
System.out.println(line);
result += line + '\n';
}
rd.close();
get.releaseConnection();
}
catch (Exception e)
{
System.err.println("Connect::execGet()" + e.toString());
fatalError = true;
errorState = e.getMessage();
}
return result;
}
private String getSessionID(String content)
{
String sSessionID = "";
Header[] aHeader = get.getResponseHeaders();
for (int l = 0; aHeader != null && l < aHeader.length; l++)
{
Header hCookie = aHeader[l];
HeaderElement[] heCookie = hCookie.getElements();
for (int i= 0; heCookie != null && i < heCookie.length; i++)
{
if ( heCookie[i].getName().equals("JSESSIONID"))
{
sSessionID = heCookie[i].getValue();
break;
}
}
if (sSessionID.length() > 0)
break;
}
return sSessionID;
}
private void doPostLogin()
{
try
{
session = getSessionID(getPage(url)); //sessionID parsen
post.setRequestBody(initPostData());
client.executeMethod(post);
//String redirectLocation = "";
//Header locationHeader = post.getResponseHeaders()[3];
//redirectLocation = locationHeader.getValue();
post.releaseConnection();
//post = new PostMethod(redirectLocation);
//client.executeMethod(post);
//post.releaseConnection();
}
catch (Exception e)
{
System.err.println("Connect::execPost()" + e.toString());
fatalError = true;
errorState = e.getMessage();
}
}
//pass,user,session sind alle vom Typ String
private NameValuePair[] initPostData() throws Exception
{
if (user != "" || pass != "" || session != "")
{
NameValuePair[] data = { new NameValuePair("JSESSIONID", session),
new NameValuePair("j_username", user),
new NameValuePair("j_password", pass)
};
return data;
}
throw (new Exception("Session ID not initialized"));
}
}
Nicht missverstehen oder so, der Code ist nutzlos, er schlägt ständig beim compiler an, das ich ein objekt verwende, das nicht initialisiert wäre und das andere Problem baut darauf auf... ich arbeite an einem größeren Projekt, dass automatisch mit dem ergebnis einer Seite arbeitet, sie bestenfalls auswertet usw...
Zuletzt bearbeitet: