Tag: 客户端

客户端validation疑点

我从其中一个博客中读到,出于安全考虑,建议在服务器端而不是客户端进行输入数据validation。 从上面的陈述开始,我的思绪开始问1)我在客户端可以用JS做什么样的validation。 2)是否有任何规则可以让任何程序员决定在哪里进行validation,无论是在客户端还是在服务器端? 我正在构建基于Java的Web应用程序

Google Admin Directory API返回400个错误请求

我正在尝试使用Google Admin SDK的Java客户端,特别是Directory API。 它基于GoogleCredentials的使用,就像Google Drive API一样。 但是,与Google云端硬盘驱动器不同的是,我收到了400条错误的目录请求错误。 我按如下方式设置API: Directory directory = new Directory.Builder(TRANSPORT, FACTORY, credential).build(); Directory.Users.List list = directory.users().list(); Users users = list.execute(); 最后一个execute()生成列在post底部的错误和堆栈跟踪。 我正在使用以下范围来授权自己。 我也可以使用Drive API。 https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/admin.directory.user 访问Drive API就像魅力一样。 我可以毫无问题地请求文件。 但是,如果我对Directory API执行简单操作,则会收到下面列出的错误和堆栈跟踪。 我应该提一下,Drive API和Directory API都指的是我是管理员的Google Apps域名。 我还在Google API控制台中启用了这两个API。 对于其他人,我无法弄清楚我做错了什么,我想知道是否有其他人看到类似的东西或者有通过Java客户端访问这个API的经验。 谢谢, 拉尔夫 [ERROR] com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 OK [ERROR] { [ERROR] “code” : […]

从Java中的另一个线程更新JTextField

我正在制作一个游戏客户端/服务器,我正在新的线程更新客户端GUI上的一些信息(使用Swing)。 我正在尝试使用SwingUtilities但它不起作用。 另外,我听说SwingUtilities每次使用它时都会创建一个新线程,所以我也在寻找一种新方法(我有10个左右的JTextFields需要更新)。 有没有办法在不使用SwingUtilities的情况下完成? 这就是我现在所拥有的。 SwingUtilities.invokeLater( new Runnable() { public void run() { Client.status.setText(“status = “+status); } });

授权给Google客户端

我正在编写一个用于为Bigquery和Google Cloud Storage创建授权的课程。 在过去,我使用过已弃用的CredentialStore。 我正在尝试使用DataStoreFactory,但我发现它允许我在需要Credential时仅使用StoredCredential。 我知道有人可以从Credential转换为StoredCredential但我不确定如何将它们转换为相反的方向(StoredCredential to Credential)。 我使用例如Storage.Builder(HttpTransport传输,JsonFactory jsonFactory,HttpRequestInitializer httpRequestInitializer)创建我的连接 有人能指出我如何实现这个目标吗? 谢谢!

Netty 4多个客户端

我需要让客户端能够建立很多连接。 我使用Netty 4.0。 不幸的是,所有现有示例都没有显示如何创建大量连接。 public class TelnetClient { private Bootstrap b; public TelnetClient() { b = new Bootstrap(); } public void connect(String host, int port) throws Exception { try { b.group(new NioEventLoopGroup()).channel(NioSocketChannel.class).remoteAddress(host, port).handler(new TelnetClientInitializer()); Channel ch = b.connect().sync().channel(); ChannelFuture lastWriteFuture = null; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); for (;;) { String line = in.readLine(); […]

连接两个客户端套接字

假设Java有两种套接字: 服务器套接字“ServerSocket” 客户端套接字或只是“套接字” 想象一下两个过程的情况: X =客户 Y =服务器 服务器进程Y:有一个“ServerSocket”,正在侦听TCP端口 客户端进程X:通过“Socket”向Y发送连接请求。 Y:然后accept()方法返回一个新的客户端类型“Socket”, 当它发生时,两个套接字变得“互连”, 所以:客户端进程中的套接字,与服务器进程中的套接字相连。 然后:通过套接字X读/写就像通过套接字Y读/写。 现在,两个客户端套接字相互连接!! 但… 如果我在同一个进程中创建两个Client套接字,我想让它们“互连”怎么办? ……甚至可能? 假设如何在不使用中间ServerSocket的情况下使两个客户端套接字互连? 我已经通过创建两个Thread来连续读取A和写入B,以及其他用于读取B和写入A来解决它… 但我认为可能是一种更好的方式……(使用客户端 – 服务器方法不需要那些世界耗能的线程) 任何帮助或建议将不胜感激! 谢谢 编辑: 应用程序示例:“现有服务器应用程序可以转换为客户端应用程序”,例如VNC服务器,一个客户端套接字连接到VNC服务器,并创建其他客户端套接字(连接到中间服务器),然后应用程序互连两个客户端导致VNC服务器是客户端应用程序! 然后,不需要公共IP。 VNCServer — MyApp —> |中间服务器| <—用户

NoSuchMethodError:Jersey客户端中的MultivaluedMap.addAll

我正在尝试使用Jersey Client来模拟对我的Web服务的HTTP请求。 我试图从文档中实现这个简单的例子 。 这是我的简短代码: public void restoreTest(String sessionId) throws Exception { Client client = ClientBuilder.newClient(); WebTarget target = client.target(idsUrl).path(“restore”); Form form = new Form(); form.param(“sessionId”, sessionId); target.request(MediaType.APPLICATION_FORM_URLENCODED_TYPE); } 我甚至没有实现整个示例,因为目前我在最后一行得到了一个exception: java.lang.NoSuchMethodError: javax.ws.rs.core.MultivaluedMap.addAll(Ljava/lang/Object;[Ljava/lang/Object;)V at org.glassfish.jersey.client.ClientRequest.accept(ClientRequest.java:254) at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:232) at org.glassfish.jersey.client.JerseyWebTarget.request(JerseyWebTarget.java:60) at org.icatproject.idsclient.TestingClient.restoreTest(TestingClient.java:112) at org.icatproject.ids.ids2.ArchiveTest.restoreThenArchiveDataset(ArchiveTest.java:55) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) […]

没有WSDL文档文件的JAX-WS客户端

我正在使用webbevice soa,netbeans(jax-ws)我使用netbeans自动生成客户端,所有运行正常,但我看到wsdl总是在客户端运行时下载。 在生产中我不想暴露wsdl,我试图修改客户端不需要wsdl,所有我的意图都错了,我发现这个: WebService_Service svc = new WebService_Service( null, new QName(“http://www.example.com/ws”, “WebService”)); WebService port = svc.getPort(WebService.class); BindingProvider bindingProvider = (BindingProvider) port; bindingProvider.getRequestContext() .put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, “http://www.example.com/real_endpoint_url_goes_here”); 但是当第一行执行时我发现了这个例外: Message: El contenido no está permitido en el prólogo. at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.wrapException(Unknown Source) at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.next(Unknown Source) at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextContent(Unknown Source) at com.sun.xml.internal.ws.streaming.XMLStreamReaderUtil.nextElementContent(Unknown Source) at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.hasWSDLDefinitions(Unknown Source) at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source) at com.sun.xml.internal.ws.wsdl.parser.RuntimeWSDLParser.parse(Unknown Source) […]

你能在GWT客户端使用Java Reflection api吗?

是否可以在GWT客户端使用javareflectionAPI? 我想使用reflection来查找Javabean上的属性值。 这可能吗?

带套接字的大文件传输

当我使用套接字编程传输大文件时,收到的文件不完整,即它是一个mp3文件,当我播放声音时很奇怪。 代码是: 服务器端: File myFile = new File(“abc.mp3”); { Socket sock = servsock.accept(); int packetsize=1024; double nosofpackets=Math.ceil(((int) myFile.length())/packetsize); BufferedInputStream bis = new BufferedInputStream(new FileInputStream(myFile)); for(double i=0;i<nosofpackets+1;i++) { byte[] mybytearray = new byte[packetsize]; bis.read(mybytearray, 0, mybytearray.length); System.out.println("Packet:"+(i+1)); OutputStream os = sock.getOutputStream(); os.write(mybytearray, 0,mybytearray.length); os.flush(); } } 客户端: int packetsize=1024; FileOutputStream fos = new FileOutputStream(“zz.mp3”); BufferedOutputStream bos […]