Avatar billede larsande Nybegynder
07. februar 2012 - 09:23 Der er 2 kommentarer

Eksempel på kommunikation med webserver

Hej Jeg kunne godt tænke mig at lave en applikation som kan sende/modtage data fra min webhotel (kører php). Jeg gætter på jeg skal lave en http klient og kommunikere af den vej. Er der nogen som har nogle gode og lette kodeeksempler på hvordan jeg gør dette smartest muligt. Måske nogen kende til nogle open source eksempler jeg kan kikke i?
Avatar billede arne_v Ekspert
07. februar 2012 - 15:17 #1
Apache HttpClient open source vil goere det noget nemmere.

Jeg har en del eksempler paa version 3.x og vistnok et fra 4.x.
Avatar billede arne_v Ekspert
07. februar 2012 - 16:20 #2
4.x eksempel:

import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;

public class Login {
    private HttpClient client;
    public Login() {
        client = new DefaultHttpClient();
    }
    public void login(String url, String userField, String userValue, String passField, String passValue) throws Exception {
        List<NameValuePair> nvp = new ArrayList<NameValuePair>();
        nvp.add(new BasicNameValuePair(userField, userValue));
        nvp.add(new BasicNameValuePair(passField, passValue));
        post(url, nvp);
    }
    public String get(String url) throws Exception {
        HttpGet met = new HttpGet(url);
        return EntityUtils.toString(client.execute(met).getEntity());
    }
    public String post(String url, List<NameValuePair> nvp) throws Exception {
        HttpPost met = new HttpPost(url);
        if (nvp != null) {
            met.setEntity(new UrlEncodedFormEntity(nvp, HTTP.UTF_8));
        }
        return EntityUtils.toString(client.execute(met).getEntity());
    }
    public static void main(String[] args) throws Exception {
        Login lgi = new Login();
        lgi.get("http://localhost:8080/login/open/test.jsp");
        lgi.login("http://localhost:8080/login/j_security_check", "j_username", "userarne", "j_password", "xxxxxx");
        System.out.println(lgi.get("http://localhost:8080/login/open/test.jsp"));
    }
}
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester