Tag: http

Java下载管理器

我需要通过FTP / HTTP从Java获得几个巨大的文件(几个演出)。 是否有一个现成的库(java /命令行工具)来方便下载? 一些明显的要求是: 多连接下载 – 应该能够打开几个连接到服务器以加速下载(如FlashGet / GetRight / …) 恢复下载 编辑 – 我真的不想写这样的图书馆,而是为现有的测试生产级图书馆窃取(或支付)。 rsynch不相关,因为我需要从HTTP和FTP站点下载文件,它不是用于内部文件传输。

在HTTP标头中发送UTF-8值会导致Mojibake

我想使用HTTPServletResponse从servlet向客户端发送阿拉伯数据 我正在尝试这个 response.setCharacterEncoding(“UTF-8”); response.setHeader(“Info”, arabicWord); 我收到这样的字眼 String arabicWord = response.getHeader(“Info”); 在客户端(接收)也试过这个 byte[]d = response.getHeader(“Info”).getBytes(“UTF-8”); arabicWord = new String(d); 但似乎没有unicode,因为我收到奇怪的英语单词,所以请问我怎样才能发送和接收阿拉伯语utf8单词?

HttpURLConnection下载了文件名

是否可以获取使用HttpURLConnection下载的文件的名称? URL url = new URL(“http://somesite/getFile?id=12345”); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod(“GET”); conn.setAllowUserInteraction(false); conn.setDoInput(true); conn.setDoOutput(true); conn.connect(); InputStream is = conn.getInputStream(); 在上面的示例中,我无法从URL中提取文件名,但服务器将以某种方式向我发送文件名。

有没有办法发现ReST API的所有端点?

我想知道是否有可能以编程方式发现特定API的所有端点。 例如,如果我使用浏览器或curl获取此URL: https : //api.twitter.com/1.1/ 我可能会得到类似这样的JSON响应: {“TwitterAPI”:{ “version” : 1.1, “GET” : { “search/” : [“users”, “trending”], “users/” : [“id”, “handle”] } } 当然,Twitter可以选择发布或不发布此格式。 所以作为一个附带问题,是否有任何Java或Javascript库可以自动映射和发布您在控制器中创建的API路由?

使用Netty的异步HTTP客户端

我是netty的新手,仍然喜欢找我的路。 我正在寻找创建一个异步工作的http客户端。 http的netty示例仅显示如何等待IO操作,而不是如何使用addListener ,因此我一直试图在过去几天解决这个问题。 我正在尝试创建一个请求类,它将处理请求的所有不同状态,包括连接,发送数据,处理响应,然后关闭连接。 为了做到这一点,我的类扩展了SimpleChannelUpstreamHandler并实现了ChannelFutureListener 。 我使用ChannelPipelineFactory将类(作为SimpleChannelUpstreamHandler )的(this)实例作为处理程序添加到管道。 连接创建如下: this.state = State.Connecting; this.clientBootstrap.connect(this.address).addListener(this); 然后是operationComplete方法: @Override public void operationComplete(ChannelFuture future) throws Exception { State oldState = this.state; if (!future.isSuccess()) { this.status = Status.Failed; future.getChannel().disconnect().addListener(this); } else if (future.isCancelled()) { this.status = Status.Canceled; future.getChannel().disconnect().addListener(this); } else switch (this.state) { case Connecting: this.state = State.Sending; Channel channel […]

快速NIO,Java异步HTTP服务器

关于这个问题,我实际上正处于为我的一个项目找到合适的HTTP容器的阶段。 我查看了几个容器,但我仍然不确定哪一个最适合高负载AJAX请求。 Apache Mina看起来非常有前景,但也相对复杂。 名为AsyncWeb的异步Web服务器实现似乎已与Mina合并,但我找不到它的任何生产相关性。 在另一个问题中,我推荐了我非常喜欢的简单HTTP服务器,因为它简单,清晰,干净,但我仍然不知道它是否符合目的。 另外,我不确定选择哪个请求处理概念: 为每个传入连接创建一个调度程序线程(优化当然可能包括一个线程池和一个调度队列),即完成所有工作。 优点可能是,我不必处理那么多同步问题,但它可能会大大降低高负载的吞吐量。 因为它将是一个高度模块化的应用程序“流水线”(我猜可能有一个更合适的术语;)方法也可以起作用:创建固定数量的线程,每个线程用于某个任务。 例如,一个用于请求处理 – >一个用于头部反序列化(如果我以不同的格式输入,如提交的HTML表单,XML-RPC,JSON等) – >一个用于“控制器调度”(做我想对这些数据做的任何事情) ) – >和一个用于以所需格式(JSON,XML,HTML等)序列化输出,并将每个请求移动到这些级别,直到完成为止。 可能更难以实现,但我有固定数量的线程(数量也可以依赖于硬件)和关注点的清晰分离。 任何可能适合的框架的经验和两种不同的处理方法?

RestTemplate – 默认超时值

使用Spring的RestTemplate时,默认超时值是多少? 例如,我正在调用这样的Web服务: RestTemplate restTemplate = new RestTemplate(); String response = restTemplate.getForObject(“http://webservice.com/item/3455”, String.class); RestTemplate是否有内置的超时值? 我不打算更改超时值,但是,我想确保每个请求都有合理的超时。 谢谢。

确定是否来自Android App的HTTP请求? 然后适当地回应

我的Android应用程序有一个与之关联的App Widget,它在Android设备上每10分钟更新一次。 这些更新将HTTP数据请求发送到服务器并解析服务器响应并根据需要更新应用程序。 截至目前,如果您从笔记本电脑或PC上的浏览器ping该URL,服务器将响应并更新服务器上数据库中所需的任何内容。 我想要做的是当在服务器上收到HTTP请求时,我想确定请求是来自Android设备的Android应用程序,然后使用数据进行响应。 如果HTTP请求来自浏览器或除我的Android应用程序之外的任何其他内容,我想以他们显示或重定向到某个页面的方式更改服务器上的PHP中的代码。 来自应用程序的典型HTTP请求类似于http://example.com/abc.php?usera=abc&datab=xyz 如果它来自除Android应用程序之外的任何其他地方,我不想以相同的方式回复此URL。 这可能吗? 什么是实现这一目标的好方法.. 谢谢你的帮助。

如何以编程方式访问java中的网页

有一个网页,我想从中检索某个字符串。 为此,我需要登录,单击某些按钮,填写文本框,单击另一个按钮 – 然后出现该字符串。 如何编写java程序来自动执行此操作? 那个目的有没有有用的库? 谢谢

遵循Android HTTP示例/教程 – 问题实现网络活动的异步任务

我正在尝试遵循关于发布HTTP数据的教程,但由于IO线程上的网络活动,它强制关闭主线程,所以我试图实现AsyncTask(正如其他一些有用的SO用户所建议的那样 – 但是我已经屠杀了代码,整个enchilada部队关闭了我。) 🙁 Android Tutorial: How To Post Data From An Android App To a Website 提前致谢! NoobNinja JAVA: import java.io.IOException; import org.apache.http.client.ClientProtocolException; import java.util.ArrayList; import android.os.AsyncTask; import java.util.List; import org.apache.http.client.HttpClient; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.NameValuePair; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.message.BasicNameValuePair; // import everything you need import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; […]