Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/183.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
服务器发送的事件客户端在Java项目中不工作_Java_Android_Server Sent Events - Fatal编程技术网

服务器发送的事件客户端在Java项目中不工作

服务器发送的事件客户端在Java项目中不工作,java,android,server-sent-events,Java,Android,Server Sent Events,我正试图从这里用java实现SSE客户机。 当使用post方法实现为Servlet客户端时,它可以正常工作。但当我在Java项目中使用main方法实现相同的客户端时,它就不起作用了,并且在Servlet中使用了相同的jar文件。下面是我与目标URI一起使用的代码:- import javax.ws.rs.Consumes; import javax.ws.rs.ProcessingException; import javax.ws.rs.client.Client; import javax.

我正试图从这里用java实现SSE客户机。 当使用post方法实现为Servlet客户端时,它可以正常工作。但当我在Java项目中使用main方法实现相同的客户端时,它就不起作用了,并且在Servlet中使用了相同的jar文件。下面是我与目标URI一起使用的代码:-

import javax.ws.rs.Consumes;
import javax.ws.rs.ProcessingException;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientBuilder;
import javax.ws.rs.client.WebTarget;
import javax.ws.rs.core.MediaType;

import org.glassfish.jersey.media.sse.EventListener;
import org.glassfish.jersey.media.sse.EventSource;
import org.glassfish.jersey.media.sse.InboundEvent;
import org.glassfish.jersey.media.sse.SseFeature;


public class SSEreceive {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    try {
      Client client = ClientBuilder.newBuilder().register(SseFeature.class).build();



      WebTarget target =   ((Client)client).target("http://www.w3schools.com/html/demo_sse.php");



      EventSource eventSource = (EventSource)EventSource.target(target).build();

      EventListener listener = new EventListener() {
        @Override
        //@Consumes(MediaType.APPLICATION_JSON)
        public void onEvent(InboundEvent inboundEvent) {
          //  System.out.println(inboundEvent.getName() + "; " + inboundEvent.readData(String.class));  
          System.out.println(inboundEvent.readData(String.class));
        }
      };

      //eventSource.register(listener, "message-to-client");

      eventSource.register(listener);
      eventSource.open();
      System.out.println("Connection tried");
      eventSource.close();

    } catch (ProcessingException pe) {
      pe.printStackTrace();
      System.out.println(pe.getMessage());
    } catch (Exception e) {
      e.printStackTrace();
      System.out.println(e.getMessage());
    }
  }
}

有人能帮我解释一下为什么这在Java项目中不起作用吗?

我正试图在Android应用程序中为SSE和目标URL-实现相同的代码。但它在Android中不起作用。请告诉我Android清单文件中是否遗漏了任何内容。也许你可以提供日志,记住响应应该有“内容类型:文本/事件流”标题和字符集=utf-8