HttpClient+List<NameValuePair>发送和接收参数——基于struts2或者ssh等框架

本文介绍如何使用HttpClient结合List&lt;NameValuePair&gt;实现参数的发送与接收,包括设置连接参数、发送HTTP POST请求及从请求中读取参数的具体实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HttpClient+List<NameValuePair>发送和接收参数——基于struts2或者ssh等框架


需要引入一些类库


发送方:

public void test1(){

try{

//创建连接
HttpClient httpclient = new DefaultHttpClient();
//设置Cookie的兼容性       
httpclient.getParams().setParameter(ClientPNames.COOKIE_POLICY, CookiePolicy.BROWSER_COMPATIBILITY);        
httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);
httpclient.getParams().setParameter("http.protocol.content-charset",requestInfo.getCharSet());  
httpclient.getParams().setParameter(HTTP.CONTENT_ENCODING, requestInfo.getCharSet());  
httpclient.getParams().setParameter(HTTP.CHARSET_PARAM, requestInfo.getCharSet());  
httpclient.getParams().setParameter(HTTP.DEFAULT_PROTOCOL_CHARSET,requestInfo.getCharSet());
//15秒连接不上则失败       
httpclient.getConnectionManager().closeIdleConnections(15, TimeUnit.SECONDS); 
List<NameValuePair> nvps = new ArrayList<NameValuePair>();  


nvps.add(new BasicNameValuePair("name", "李明"));

nvps.add(new BasicNameValuePair("age", "10"));

HttpResponse response;
HttpPost httppost = new HttpPost("http://***/test2.do");                   //发送的地址url,你需要自己更改,比如http://127.0.0.1/项目名/请求.do

httppost.setEntity(new UrlEncodedFormEntity(nvps,utf-8));  
response = httpclient.execute(httppost);
String result=EntityUtils.toString(response.getEntity());
return_result = StringUtils.isNotBlank(result) ? result : "noSuccess";

return return_result;
}catch(Exception e){

}

}


接收方:

//模拟第三方返回结果
public void  test2() {
try {


ActionContext ctx = ActionContext.getContext();
HttpServletRequest request = (HttpServletRequest) ctx.get(ServletActionContext.HTTP_REQUEST);
HttpServletResponse response = (HttpServletResponse) ctx.get(ServletActionContext.HTTP_RESPONSE);

//列举显示所有参数的键值对
Enumeration en = request.getParameterNames();
while (en.hasMoreElements()) {
String k = (String) en.nextElement();
String v = request.getParameter(k);
System.out.println("k="+k+"    v="+v);
}



String  name=request .getParameter("name");
System.out.println("name="+name);

//返回结果,比如收到了,或者操作成功 
PrintWriter printWriter = response.getWriter();
printWriter.write("true");
printWriter.flush();
printWriter.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值