Java-сервер для обработки клиентских запросов и ответа на него? - PullRequest
0 голосов
/ 29 июля 2010

Я ищу концепцию создания Java-сервера для обработки клиентских запросов и ответа на него, я хочу использовать движок Google App, который не разрешает подключения через сокет, поэтому клиент и сервер в этом случае будут взаимодействовать с использованием Http-запросов?Я буду рад, если кто-то сможет прояснить мне логику и предоставить несколько строк кода.

Спасибо

Ответы [ 2 ]

1 голос
/ 29 июля 2010

Простая структура может предложить то, что вы ищете. Это позволяет встраивать HTTP-сервер в ваше приложение с относительно небольшими издержками:

import org.simpleframework.http.core.Container;
import org.simpleframework.transport.connect.Connection;
import org.simpleframework.transport.connect.SocketConnection;
import org.simpleframework.http.Response;
import org.simpleframework.http.Request;
import java.net.InetSocketAddress;
import java.net.SocketAddress;
import java.io.PrintStream;

public class HelloWorld implements Container {

   public void handle(Request request, Response response) {
      PrintStream body = response.getPrintStream();
      long time = System.currentTimeMillis();

      response.set("Content-Type", "text/plain");
      response.set("Server", "HelloWorld/1.0 (Simple 4.0)");
      response.setDate("Date", time);
      response.setDate("Last-Modified", time);

      body.println("Hello World");
      body.close();
   } 

   public static void main(String[] list) throws Exception {
      Container container = new HelloWorld();
      Connection connection = new SocketConnection(container);
      SocketAddress address = new InetSocketAddress(8080);

      connection.connect(address);
   }
}

Для сравнения с другими решениями обратите внимание, что Simple не только встраиваемый, но и с открытым исходным кодом, полностью автономен и асинхронен во всем. Удачи!

0 голосов
/ 31 июля 2010

Спасибо за все ответы, но мне нужны были простые методы, чтобы использовать его в приложении для Android. Как следующий код:

HTTP GET

`

try {
        HttpClient client = new DefaultHttpClient();  
        String getURL = "http://www.google.com";
        HttpGet get = new HttpGet(getURL);
        HttpResponse responseGet = client.execute(get);  
        HttpEntity resEntityGet = responseGet.getEntity();  
        if (resEntityGet != null) {  
                    //do something with the response
                    Log.i("GET RESPONSE",EntityUtils.toString(resEntityGet));
                }
} catch (Exception e) {
    e.printStackTrace();
}`

HTTP POST

try {
    HttpClient client = new DefaultHttpClient();  
    String postURL = "http://somepostaddress.com";
    HttpPost post = new HttpPost(postURL); 
        List<NameValuePair> params = new ArrayList<NameValuePair>();
        params.add(new BasicNameValuePair("user", "kris"));
        params.add(new BasicNameValuePair("pass", "xyz"));
        UrlEncodedFormEntity ent = new UrlEncodedFormEntity(params,HTTP.UTF_8);
        post.setEntity(ent);
        HttpResponse responsePOST = client.execute(post);  
        HttpEntity resEntity = responsePOST.getEntity();  
        if (resEntity != null) {    
            Log.i("RESPONSE",EntityUtils.toString(resEntity));
        }
} catch (Exception e) {
    e.printStackTrace();
}

Код с этого сайта , и вам не нужны никакие дополнительные файлы Jar для использования в Android, и мне удалось использовать его с движком Google App.

...