此包提供了一个完整的HTTP客户端库。目前,它实现了大部分的HTTP / 1.0和HTTP的相关部分的/ 1.1协议,包括请求方法HEAD,GET,POST和PUT和自动处理授权,重定向请求和饼干。
此外,包括编解码器类包含编码器和解码器中的Base64,引用可打印,URL编码,分块和多部分/表单数据编码。整个事情是免费的,GNU宽通用公共许可证(LGPL)下许可(注意,这是不一样的GPL)。
以下是包和文档HttpClient的版本0.3-3。如果你有任何问题,错误,建议,意见等看到调试和报告问题的信息。这些网页的旧版本也提供日语,得益于虞姬Kumasaka的好心的努力。
使用HttpClient的应该是很简单的。首先添加import语句导入了HTTPClient *。到您的文件(S)。接下来创建的HttpConnection的实例(你需要一个给你希望与之对话的每个服务器)。请求然后可以使用方法头(),获得(),邮政()等在HttpConnection的一个发送。
这些方法都返回的HttpResponse其具有用于访问响应头(getHeader(),getHeaderAsInt(),等等),各种响应信息(getStatusCode(),getReasonLine(),等等),响应数据(的getData方法的一个实例() ,的getText(),和的getInputStream()),并且可能已被发送的任何拖车(getTrailer(),getTrailerAsInt(),等等)。下面是一些例子上手。
检索网址“http://www.myaddr.net/my/file”文件,你可以使用类似以下内容:
尝试
{
HttpConnection的CON =新的HttpConnection(“www.myaddr.net”);
HttpResponse的RSP = con.Get(“/我/文件”);
如果(rsp.getStatusCode()> = 300)
{
通信System.err.println(“收到的错误:”+ rsp.getReasonLine());
通信System.err.println(rsp.getText());
}
其他
数据= rsp.getData();
RSP = con.Get(“/ another_file”);
如果(rsp.getStatusCode()> = 300)
{
通信System.err.println(“收到的错误:”+ rsp.getReasonLine());
通信System.err.println(rsp.getText());
}
其他
other_data = rsp.getData();
}
赶上(IOException异常IOE)
{
通信System.err.println(ioe.toString());
}
赶上(ParseException的PE)
{
通信System.err.println(“错误分析的Content-Type:”+ pe.toString());
}
赶上(ModuleException我)
{
通信System.err.println(“错误处理的请求:”+ me.getMessage());
}
这将让文件“/我/文件”和“/ another_file”,并把其内容转换为字节[]的访问通过的getData()]。请注意,您只需要创建发送请求到新服务器(不同的协议,主机或端口),当一个新的HttpConnection;虽然你可能会创建一个新的HttpConnection的每一个请求到同一台服务器这个不推荐,因为有关服务器的各种信息的第一个请求后缓存(优化后续请求)和持久连接尽可能地使用(参见高级信息)。
从一个小程序POST表单数据回您的服务器,你可以使用这样的事情(假设你有两个字段叫做姓名和电子邮件,其内容被存储在变量名和电子邮件):
尝试
{
NVPair form_data [] =新NVPair [2];
form_data [0] =新NVPair(“姓名”,姓名);
form_data [1] =新NVPair(“邮件”,邮件);
//注意,便捷构造的小程序
HttpConnection的CON =新的HttpConnection(本);
HttpResponse的RSP = con.Post(“/ cgi-bin目录/ my_script”,form_data);
如果(rsp.getStatusCode()> = 300)
{
通信System.err.println(“收到的错误:”+ rsp.getReasonLine());
通信System.err.println(rsp.getText());
}
其他
流= rsp.getInputStream();
}
赶上(IOException异常IOE)
{
通信System.err.println(ioe.toString());
}
赶上(ModuleException我)
{
通信System.err.println(“错误处理的请求:”+ me.getMessage());
}
在这里,响应数据是通过一个InputStream,而不是所有的阅读休闲立刻变成一个byte []。
再举一个例子,如果你想将文档上传到一个URL(和服务器支持HTTP PUT),你可以不喜欢以下内容:
尝试
{
网址URL =新的URL(“http://www.mydomain.us/test/my_file”);
HttpConnection的CON =新的HttpConnection(URL);
HttpResponse的RSP = con.Put(url.getFile()的“Hello World”);
如果(rsp.getStatusCode()> = 300)
{
通信System.err.println(“收到的错误:”+ rsp.getReasonLine());
通信System.err.println(rsp.getText());
}
其他
文= rsp.getText();
}
赶上(IOException异常IOE)
{
通信System.err.println(ioe.toString());
}
赶上(ModuleException我)
{
通信System.err.println(“错误处理的请求:”+ me.getMessage());
}
按类别搜索
热门软件
-
Xfburn 17 Feb 15
-
CentOS Live CD 22 Jun 18
-
Yandex Browser 17 Feb 15
-
Zorin OS Lite 16 Aug 18
-
Tiny Core Linux 2 Sep 17
-
Kismet 17 Feb 15
-
DHIS 2 17 Feb 15
评论没有发现