java.net.URLConnection在这里经常询问使用情况,Oracle教程对此非常简洁.
该教程基本上只显示了如何触发GET请求并读取响应.它没有解释如何使用它来执行POST请求,设置请求标头,读取响应标头,处理cookie,提交HTML表单,上传文件等.
那么,我如何使用java.net.URLConnection触发和处理"高级"HTTP请求?
我想通过阅读文件的第一部分并分析内容来确定文件的类型(通常是UTF-8).(该类型特定于我的社区,但不在我的控制之下,并且不包含在MIME/MediaType中,通常是TEXT_PLAIN).我正在使用客户端上的'org.restlet'库来分析标头
Request request = new Request(Method.HEAD, url);
Run Code Online (Sandbox Code Playgroud)
所以我知道内容长度,并且可以(如果必要和可能)估计我应该为分析下载多少字节
澄清:我无法使用MediaType.从答案1看起来我必须得到内容.因此,修订后的问题是:
"我可以使用Restlet 获取文件的一部分吗?"
答案:以下代码可以满足我的需求.我已经将@BalusC归功于这种方式.如果我错过了任何内容,请评论:
public String readFirstChunk(String urlString, int byteCount) {
String text = null;
if (urlString != null) {
org.restlet.Client restletClient = new org.restlet.Client(Protocol.HTTP);
Request request = new Request(Method.GET, urlString);
List<Range> ranges = Collections.singletonList(new Range(0, byteCount));
request.setRanges(ranges);
Response response = restletClient.handle(request);
if (Status.SUCCESS_OK.equals(response.getStatus())) {
text = processSuccessfulChunkRequest(response);
} else if (Status.SUCCESS_PARTIAL_CONTENT .equals(response.getStatus())) {
text = processSuccessfulChunkRequest(response);
} else {
System.err.println("FAILED "+response.getStatus());
}
}
return text;
}
private String processSuccessfulChunkRequest(Response …Run Code Online (Sandbox Code Playgroud) 有人可以指出我进行并行网络请求的片段吗?我需要发出 6 个 Web 请求并连接 HTML 结果。
有没有一种快速的方法来完成这个,还是我必须走线程的方式?
谢谢你。