Tag: http

java.io.IOException:服务器返回HTTP响应代码:500

我正在用Java面对这个问题。 我想从URL获取一些HTML信息。 这段代码工作了很长时间,但突然间,它停止了工作。 当我使用浏览器访问此URL时,它会打开没有问题。 代码: URL site = new URL(this.url); java.net.URLConnection yc = site.openConnection(); BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream())); String inputLine; String objetivo = “<td height=\"28\" colspan=\"2\""; while ((inputLine = in.readLine()) != null && !inputLine.contains(objetivo)) { } inputLine = in.readLine(); 例外情况: java.io.IOException: Server returned HTTP response code: 500 for URL: http://www.myurl.com at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source) […]

Javamultithreading文件下载性能

最近我在一个需要比以前更多的IO交互的项目上工作,我觉得我想要查看常规库(特别是Commons IO)并解决更深入的IO问题。 作为一项学术测试,我决定实现一个基本的,multithreading的HTTP下载器。 这个想法很简单:提供一个下载URL,代码将下载该文件。 为了提高下载速度,将文件分块并同时下载每个块(使用HTTP Range: bytes=xx标头)以尽可能多地使用带宽。 我有一个工作原型,但你可能已经猜到了,它并不完全理想。 目前我手动启动3个“下载程序”线程,每个线程下载文件的1/3。 这些线程使用通用的同步“文件编写器”实例来实际将文件写入磁盘。 完成所有线程后,“文件编写器”完成,任何打开的流都关闭。 一些代码片段可以给你一个想法: 线程启动: ExecutorService downloadExecutor = Executors.newFixedThreadPool(3); … downloadExecutor.execute(new Downloader(fileWriter, download, start1, end1)); downloadExecutor.execute(new Downloader(fileWriter, download, start2, end2)); downloadExecutor.execute(new Downloader(fileWriter, download, start3, end3)); 每个“下载程序”线程下载一个块(缓冲)并使用“文件编写器”写入磁盘: int bytesRead = 0; byte[] buffer = new byte[1024*1024]; InputStream inStream = entity.getContent(); long seekOffset = chunkStart; while ((bytesRead = inStream.read(buffer)) […]

响应中的JAX / Jersey自定义错误代码

在Jersey中,我们如何“替换”与已知状态代码关联的状态字符串? 例如 return Response.status(401).build(); 生成包含以下内容的HTTP响应: HTTP/1.1 401 Unauthorized 我(不是我,但客户端应用程序)希望将响应视为: HTTP/1.1 401 Authorization Required 我尝试了以下方法,但徒劳无功: 1)这只是在HTTP响应的主体中添加了String return Response.status(401).entity(“Authorization Required”).build(); 2)同样的结果: ResponseBuilder rb = Response.status(401); rb = rb.tag(“Authorization Required”); return rb.build(); 感谢您的帮助! -spd

每个连接的线程数与每个请求的线程数有什么区别?

能否解释一下在各种servlet实现中实现的两种方法: 每个连接的线程 每个请求的线程 以上两种策略中哪一种更好地扩展?为什么?

请求标头太大

我在日志中发现了几个IllegalStateExceptionexception: [#|2009-01-28T14:10:16.050+0100|SEVERE|sun-appserver2.1|javax.enterprise.system.container.web|_ThreadID=26;_ThreadName=httpSSLWorkerThread-80-53;_RequestID=871b8812-7bc5-4ed7-85f1-ea48f760b51e;|WEB0777: Unblocking keep-alive exception java.lang.IllegalStateException: PWC4662: Request header is too large at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:740) at org.apache.coyote.http11.InternalInputBuffer.parseHeader(InternalInputBuffer.java:657) at org.apache.coyote.http11.InternalInputBuffer.parseHeaders(InternalInputBuffer.java:543) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.parseRequest(DefaultProcessorTask.java:712) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.doProcess(DefaultProcessorTask.java:577) at com.sun.enterprise.web.connector.grizzly.DefaultProcessorTask.process(DefaultProcessorTask.java:831) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.executeProcessorTask(DefaultReadTask.java:341) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:263) at com.sun.enterprise.web.connector.grizzly.DefaultReadTask.doTask(DefaultReadTask.java:214) at com.sun.enterprise.web.portunif.PortUnificationPipeline$PUTask.doTask(PortUnificationPipeline.java:380) at com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:265) at com.sun.enterprise.web.connector.grizzly.ssl.SSLWorkerThread.run(SSLWorkerThread.java:106) |#] 有人知道配置更改来解决这个问题吗?

多部分请求/响应java

我有一个任务来实现发送http多部分请求和解释http多部分响应。 我决定从响应开始,因为我只需要收到响应并解析它。 我没有那么多的java经验,甚至更少的HTTP经验,这就是为什么我读了一些关于这个主题的文章和其他东西,但我还有一些未解决的问题: 据我所知,内容类型multipart用于文件上传,发送电子邮件附件等。我在google中找到的大多数post都是使用multipart / form-data进行文件上传的。 在其他情况下使用这种内容类型? 我决定从HTTP多部分响应开始,但我意识到我不知道为了接收具有这种内容类型的响应我必须做什么。 我的请求怎么样?我要求这个请求怎么办? 我只想在java中编写一个简单的程序,它向服务器发送一个HTTP请求,并且收到的响应是内容类型的multipart。 如果有人可以向我澄清这些事情会很好,因为我觉得我误解了一些事情。 先谢谢你!

如何在Java中将HTTP请求体转换为JSON对象

我正在尝试找到一个Java lib / api,它允许我将HTTP Request POST主体的内容转换为JSON对象。 理想情况下,我想使用Apache Sling库(因为它们在我的容器中自然暴露)。 最接近我发现它: org.apache.sling.commons.json.http将标头转换为JSON。 HTTP Post主体采用格式; key1=value1&key2=value2&..&keyn=valueN所以我假设有一些东西,但我找不到它。 如果某些东西不存在,我可能只需要使用自定义JSONTokener ( org.apache.sling.commons.json.JSONTokener )来执行此操作。 思考? 谢谢

仅记录http servlet响应标头

这是一个与Capture相关的问题并记录响应主体 。 如果我只想记录响应头而不是整个身体怎么办? 是否有与链接问题中描述的方法不同的方法?

使用Java For Android的HTTP API请求

我找到了一个我想玩的API,因为我是免费的。 我想问一下,如果我想使用API​​开发Android应用程序,而API是基于HTTP协议的(RESTful),我该如何使用HTTPClient对象呢? 我有一般要求信息。 HEAD /authenticate/ HTTP/1.1 Host: my.api.com Date: Thu, 17 Jul 2008 14:52:54 GMT X-SE-Client: some-value X-SE-Accept: xml X-SE-Auth: 90a6d325e982f764f86a7e248edf6a660d4ee833 如果成功,上述的反应将是如此。 HTTP/1.1 200 OK Date: Thu, 17 Jul 2008 14:52:55 GMT Server: MyApi Content-Length: 795 Connection: close Content-Type: text/xml 我知道如何使用HTTPClient发送HTTP请求但是它是否会在请求中添加额外的标头和其他不必要的东西? 如何查看HTTPClient对象发出的请求? 我想简单地请求在telnet中传递文本。

Java中的HTTP Json请求?

如何用Java生成HTTP Json请求? 任何图书馆? 在“HTTP Json请求”下,我的意思是使用Json对象作为数据进行POST,并将结果作为Json接收。