A. 怎么使用httpclient实现http接口调用实例
你的意思是用HttpClient实现网络请求?
如果是的话,下面这段代码应该可以实现:
HttpClientclient=newDefaultHttpClient();
//strUrl是请求地址
HttpGetget=newHttpGet(strUrl);
try
{
HttpResponseresponse=client.execute(get);
if(response.getStatusLine().getStatusCode()==200)
{
HttpEntityentity=response.getEntity();
//这里可以用数据流进行接收,我这里用的字节数组
finalbyte[]resultData=EntityUtils.toByteArray(entity);
}
}
catch(Exceptione)
{
e.printStackTrace();
}
B. 如何写一个HttpClient
如何设置一个HttpClient的请求Content-Type头
给数组赋值的方法除了用赋值语句对数组元素逐个赋值外, 还可采用初始化赋值和动态赋值的方法。
数组初始化赋值是指在数组定义时给数组元素赋予初值。数组初始化是在编译阶段进行的。这样将减少运行时间,提高效率。
初始化赋值的一般形式为:
类型说明符 数组名[常量表达式]={值,值……值};
其中在{ }中的各数据值即为各元素的初值,各值之间用逗号间隔。
例如:
int a[10]={ 0,1,2,3,4,5,6,7,8,9 };
相当于a[0]=0;a[1]=1a[9]=9;
c语言对数组的初始化赋值还有以下几点规定:
1) 可以只给部分元素赋初值。
当{ }中值的个数少于元素个数时,只 给前面部分元素赋值。
例如:
int a[10]={0,1,2,3,4};
表示只给a[0]~a[4]5个元素赋值,而后5个元素自动赋0值。
2) 只能给元素逐个赋值,不能给数组整体赋值。
例如给十个元素全部赋1值,只能写为:
int a[10]={1,1,1,1,1,1,1,1,1,1};
而不能写为:
C. asp语言中,可以通过httpclient以get或者post方式发送请求吗
这个应该是不行的吧 除非你用服务器登录他们的网站 因为统计ip总是记录客户端的ip 只有把你自己的服务器当作客户端才可以
D. httpClient到底是干吗用的
HttpClient 是 Apache Jakarta Common 下的子项目,可以用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,并且它支持 HTTP 协议最新的版本和建议。一般用来网上抓包或者模拟登陆用的 比如:
(1) 使用GET方法抓包
1. 创建 HttpClient 的实例
2. 创建某种连接方法的实例,在这里是GetMethod。在 GetMethod 的构造函数中传入待连接的地址
3. 调用第一步中创建好的实例的 execute 方法来执行第二步中创建好的 method 实例
4. 读 response
5. 释放连接。无论执行方法是否成功,都必须释放连接
6. 对得到后的内容进行处理
根据以上步骤,我们来编写用GET方法来取得某网页内容的代码。
E. 请教HttpClient 读取内容乱码的问题
1)将接收的内容(参数)进行编码
request.setCharacterEncodeing(String charset);
2)将要输出的转发的内容进行编码
response.setContextType("text/html;charset=utf-8");
3)html表单中的数据会按照当前页面来进行编码。
<meta http-equiv="content-type" content="text/html;charset=utf-8;">
模拟消息头content-type,让浏览器以utf-8编码打开页面。
确保页面将表单用指定的字符编码进行编码。
4)cookie
cookie的值只能是ascii字符,如果是中文,需要将中文转换成ascii字符形式。
可以使用URLEncoder.encode()方法和URLDecoder.decode()方法来进行这种转换。
5)在web.xml 中配置一个Spring 的编码转换过滤器就可以了.使用在非struts2框架开发:
org.springframework.web.filter.CharacterEncodingFilter
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>
org.springframework.web.filter.CharacterEncodingFilter
</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
F. 如何用c语言实现http服务器
//服务端简易代码如下:
#include<stdio.h>
#include<stdlib.h>
#include<err.h>
#include<event.h>
#include<evhttp.h>
voidhttp_handle(structevhttp_request*req,void*arg);/*HTTPRequestHandle*/
intmain(){
structevhttp*httpd;
event_init();
httpd=evhttp_start("0.0.0.0",2345);
if(httpd==NULL){
fprintf(stderr,"Error:Unabletolistenon%s:%d ");
exit(1);
}
evhttp_set_timeout(httpd,2000);
evhttp_set_gencb(httpd,http_handle,NULL);
event_dispatch();
evhttp_free(httpd);
return0;
}
voidhttp_handle(structevhttp_request*req,void*arg){
structevbuffer*buf;
buf=evbuffer_new();
/*Responsetheclient*/
evhttp_send_reply(req,HTTP_OK,"OK",buf);
//evbuffer_add_printf(buf,"%s","HTTPSQS_AUTH_FAILED");
/*Releasethememory*/
evbuffer_free(buf);
fprintf(stderr,"Send ");
}
编译:编译时把libevent的类库中的.so文件和.h文件连接进来。
G. 如何在C++中使用HttpClient处理程序
程序暂停: 在C++里使用 #include getch(); 或者 #include getchar(); 在windows中,还可以使用 #include system("pause"); 如果单纯想要查看结果,还可以使用sleep windows中 #include Sleep(int); 在linux中 #include sleep(int);
H. jsp-httpclient中url中带中文怎么解决
jsp-httpclient中url中带中文的解决办法:
在Servlet中 添加 req.setCharacterEncoding("UTF-8");
然后para=req.getParameter("title");取出参数。
在转发的时候,设置参数GBK编码:para = URLEncoder.encode(para, "GBK");
再使用HttpClient发送Get请求。这个时候就成功了。
在Servlet中接收参数的时候,必须指定req.setCharacterEncoding("参数编码方式");这样取出来的参数才不会乱码,随后对参数的处理才能成功。
I. httpclient和restclient有什么区别
httpclient和restclient的区别:
HttpClient是个很不错的开源框架,封装了访问http的请求头,参数,内容体,响应等等。
HttpURLConnection是java的标准类,什么都没封装,用起来太原始,不方便。 比如重访问的自定义,以及一些高级功能等。