日期:2014-05-18  浏览次数:21285 次

HttpClient的getResponseBodyAsString()返回空字符串啊怎么回事
关键代码如下:
HttpClient httpClient=new HttpClient();
        httpClient.getParams().setContentCharset("GBK");
        PostMethod postMethod=new PostMethod("http://cam.xxx.com/servlet/ISaveBlog");
        NameValuePair[] data = { 
        new NameValuePair("content",discuss.getContent()),new NameValuePair("username", discuss.getUsername()),
        new NameValuePair("title",discuss.getTarget()),new NameValuePair("url",discuss.getUrl()),
        new NameValuePair("systemId",discuss.getSystemId()+""),new NameValuePair("ip",discuss.getIp()),
        new NameValuePair("source",discuss.getSource())
        };
        postMethod.setRequestBody(data);
        int code = httpClient.executeMethod(postMethod);
        Long result =Long.parseLong(postMethod.getResponseBodyAsString());


code 的值返回来的是200
然后postMethod.getResponseBodyAsString()的执行结果是空字符串,实在疑惑,求指点迷津啊!
HttpClient

------解决方案--------------------
测试可以不?
 public static void main(String[] args) {
  //构造HttpClient的实例
  HttpClient httpClient = new HttpClient();
  //创建GET方法的实例
  GetMethod getMethod = new GetMethod("http://www.ibm.com");
  //使用系统提供的默认的恢复策略
  getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER,
    new DefaultHttpMethodRetryHandler());
  try {
   //执行getMethod
   int statusCode = httpClient.executeMethod(getMethod);
   if (statusCode != HttpStatus.SC_OK) {
    System.err.println("Method failed: "
      + getMethod.getStatusLine());
   }
   //读取内容 
   byte[] responseBody = getMethod.getResponseBody();
   //处理内容
   System.out.println(new String(responseBody));
  } catch (HttpException e) {
   //发生致命的异常,可能是协议不对或者返回的内容有问题
   System.out.println("Please check your provided http address!");
   e.printStackTrace();
  } catch (IOException e) {
   //发生网络异常
   e.printStackTrace();
  } finally {
   //释放连接