Tag: 请求

如何用jsp源构建base64图像src?

我正在努力与base64。 我想通过wysiwyg编辑器解码一个图像。 我建立了一个像下面这样的来源。(它是……的一部分) InputStream is = request.getInputStream(); byte b[] = IOUtils.toByteArray(is); String base64DataString = Base64.encodeBase64String(b); String aaa = Base64.encodeBase64URLSafeString(b); base64DataString = “data:image/” + ext + “;base64,” + aaa; if(aaa == “a”){} if(is != null) { is.close(); } 我从请求中获取了InputStream并将其作为字节数组。 byte [] b的大小与我上传的文件大小完全相同。 然后我结合一个String来放置图像标签的src属性。 毕竟,当我看到HTML时。 它有一个破碎的图像。 输出如下所示: 我的代码有多可疑部分? 谢谢你的回答:D bb

请求调度程序转发和servlet链接之间的区别

请求调度程序的forward方法和servlet链接的概念有什么区别? 例 RequestDispatcher rd= req.getRequestDispatcher(“pathToServlet”); rd.forward(req,resp); 这样做是在不涉及客户端(浏览器)交互的情况下转发请求。 但是我们可以使用Servlet Chaining实现相同的目标吗? 如果我们可以那么有什么区别?

如何访问我定义的java grpc服务的请求元数据?

对于某些背景,我试图使用grpc auth来为我定义的某些服务提供安全性。 让我们看看我是否可以问这是一种有意义的方式。 对于我的python代码,实现服务器端代码非常容易。 class TestServiceServer(service_pb2.TestServiceServer): def TestHello(self, request, context): ## credential metadata for the incoming request metadata = context.invocation_metadata() ## authenticate the user using the metadata 所以,正如你所知,我能够很容易地从“上下文”中获取元数据。 对我来说更难的是在java中做同样的事情。 public class TestImpl extends TestServiceGrpc.TestServiceImplBase { @Override public void testHello(TestRequest req, StreamObserver responseObserver) { // How do I get access to similar request metadata here? // […]

通过Java中的Socket处理POST请求

我正在尝试使用Socket处理Java中的简单POST请求。 我可以收到请求标头并回答请求没有任何问题,但我当然无法得到请求的正文。 我在某处读到了我需要打开第二个InputStream来实现这个目标,但这对我来说并没有多大意义。 您有关于如何获取请求正文的任何​​提示吗? 这是我基本上用来获取标题: BufferedReader in = new BufferedReader(new InputStreamReader( clientSocket.getInputStream())); char[] inputBuffer = new char[INPUT_BUFFER_LENGTH]; int inputMessageLength = in.read(inputBuffer, 0, INPUT_BUFFER_LENGTH); String inputMessage = new String(inputBuffer, 0, inputMessageLength); 所以,我得到的信息是这样的: POST / HTTP/1.1 User-Agent: Java/1.8.0_45 Host: localhost:5555 Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2 但我无法获取POST请求的参数。 编辑: 所以事实certificate我只有INPUT_BUFFER_LENGTH足够高(我知道,对我感到羞耻)。 因此,当我工作时,我将我的ServerSocket更改为SSLServerSocket并再次尝试从Java发送带有HttpsUrlConnection的请求,现在我又遇到了同样的问题(已经检查过缓冲区),得到这样的结果: POST / HTTP/1.1 User-Agent: Java/1.8.0_45 […]

Java HttpURLConnection返回JSON

我正在尝试发出一个返回json响应的http get请求。 我需要将json响应中的一些值存储在我的会话中。 我有这个: public String getSessionKey(){ BufferedReader rd = null; StringBuilder sb = null; String line = null; try { URL url = new URL(//url here); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setRequestMethod(“GET”); connection.connect(); rd = new BufferedReader(new InputStreamReader(connection.getInputStream())); sb = new StringBuilder(); while ((line = rd.readLine()) != null) { sb.append(line + ‘\n’); } return […]

在ajax调用中通过id获取会话

有没有办法在对JAVA服务器进行的AJAX调用中访问会话。 在服务器上, request对象的session和cookies属性都为NULL 。 我可以将会话ID作为参数传递,但是如何通过ID访问会话? 编辑 使用session.getSession(false); session.getSession(true);返回null 显然会返回一个新的会话,另一个id。

如何从ContainerRequestContext JERSEY 2.1获取IP?

我的代码是这样的: public void filter(ContainerRequestContext request) throws IOException { // can I get Ip from request????? } 如何从request获取IP地址?

空请求正文未被Spring @RequestBody @Valid注释捕获

我目前在Spring中遇到了@RequestBody注释的问题。 我目前在我的模型上正确设置了所有validation注释,并且在对象发布时它们工作得很好。 即使发布的请求主体完全为空或空对象“{}”,一切都按预期工作。 当有人试图发布“null”请求主体时,就会出现问题。 这以某种方式通过@Valid注释获取并且没有被捕获,当我尝试访问该对象时导致NullPointerException 。 我在下面粘贴了我的控制器片段。 @Secured({ ROLE_ADMIN }) @RequestMapping(method = RequestMethod.POST, consumes = { MediaType.APPLICATION_JSON_VALUE } ) public HttpEntity<Resource> addItem(@RequestBody @Valid Item item) throws Exception { Resource itemResource = this.itemResourceAssembler.toResource(this.itemService.save(item)); return new ResponseEntity<Resource>(itemResource, HttpStatus.CREATED); } 我在itemService.save()做了一些检查,看看数据库中是否存在一个项目,因为它被用作upsert。 当我访问传递给save的项时,我得到NullPointerException因为item为null。 我已经尝试使用@RequestBody的“required”参数,但只检查是否有POST的内容。 如上所述,只有当用户在没有引号作为请求主体的情况下发布“null”时,才会传递空项。 是否有自动的Spring注释或配置来阻止此null被传递,或者我应该只是把if(item == null) throw new Exception(); 在我的所有控制器中,这可能会出现?

使用JKS和/或PFX证书从C#客户端调用Java Web服务

我基本上需要确保我对此服务的请求。 我已经提供了一个JAR测试客户端和两个文件, trust.jks和Client.pfx ,但我不知道如何使用它们:我理解X509Certificate2类以某种方式涉及。 执行测试客户端的命令行如下: java -Djavax.net.ssl.trustStore=trust.jks -Djavax.net.ssl.trustStorePassword=******** -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.keyStore=Client.pfx -Djavax.net.ssl.keyStoreType=pkcs12 -Djavax.net.ssl.keyStorePassword=******** -jar TestClient.jar https://myServiceurl 它工作正常,所以我都可以看到服务,并且应该正确配置服务本身。 我的C#客户端(它的目标是.NET 2.0)使用普通的Web引用来执行请求: wsReferenceClient service = new wsReferenceClient(); //certificate code here ? //maybe service.ClientCertificates.Add(); ? service.MyRequest(myParameters); 应正确设置服务器设置。 我摸索着使用X509Certificate2方法,但我不能提出一些有意义的东西,所以答案是“你尝试了什么?” 现在的问题是“我真的不知道首先要尝试什么”。 任何帮助将非常感激。

Java servlet – 会话清理(HttpServletRequest)

关于java servlet的一般问题和处理请求的最佳方法。 如果我从远程服务器请求中点击我的doGet方法: protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { …. …. kill(request); } private void kill(HttpServletRequest request) { //How do I kill the user session here? } 在我结束处理请求并生成输出到请求者之后,我想基本上“杀死”他们的会话。 目前,该会话徘徊,从而占用内存。 然后,一旦达到最大值,所有其他呼叫都将超时。 我尝试使用请求对象创建一个HttpSession对象,但得到了相同的结果: HttpSession session = request.getSession(); session.invalidate();