日期:2014-05-17  浏览次数:20625 次

高手帮我看看,HttpClient总是连接不上网站,在线等待~
在网络上看了一些资料,基本都是讲述 HttpClient,通过postMethod()向页面发送参数,实现获取结果的

但是,本人想向站点发送action请求,老是通不过单元测试,

代码如下,我尽量附上注释,请高手帮忙解决:

public class 类{
  private static String URL = "/etrading/*******";

/** 以post方式向URL发送 */
private static HttpMethod postMethod(String url, NameValuePair[] param) throws IOException {
PostMethod post = new PostMethod(url);
post.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=gbk");
post.setRequestBody(param);
post.releaseConnection();
return post;
}


public String HttpClient(String methodType) {
// TODO Auto-generated method stub
HttpClient client = new HttpClient ();
HttpMethod method ;
String response = null;

  //测试连接本机已开启的网站,
client.getHostConfiguration().setHost("http://127.0.0.1",7001,"http");  
NameValuePair[] param ={new NameValuePair("method",methodType)};

try {
// 执行远程调用
method = postMethod(URL, param);
client.executeMethod(method);
// 得到返回结果
response = new String(method.getResponseBodyAsString().getBytes("GBK"));
//释放连接
method.releaseConnection();
} catch (IOException e) {
throw new BOException("连接服务器失败");
}
return response;
}


如上所示,我的问题是这样的:http://127.0.0.1:7001/etrading/PropertyRWServlet?method=read,想向etrading应用发送servlet请求,不知道怎么配置URL和NameValuePair参数,

ps:这个地址直接打到浏览器里,网页正确返回结果。而我代码单元测试老是错误。

期待您的帮忙,万谢!

------解决方案--------------------
从你后面的情况来看,你不是POST方式请求,而是GET方式请求;
也就是不应该用 PostMethod 对象,应该改为 GetMethod 对象。


GetMethod get = new GetMethod("http://127.0.0.1:7001/etrading/PropertyRWServlet?method=read");