1首先写一个通讯类HttpClient,并不局限于只是webservice通讯
public class HttpClient{
public class HttpClient {
public String getPostResponse(String url,String encode, String requestBody) throws Exception
{
MultiThreadedHttpConnectionManager manager = new MultiThreadedHttpConnectionManager();
org.apache.commons.httpclient.HttpClient client = new org.apache.commons.httpclient.HttpClient(manager);
SetPara(manager);
PostMethod post = new PostMethod(url);
post.getParams().setParameter(HttpMethodParams.HTTP_ELEMENT_CHARSET, "utf-8");
post.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET,"utf-8");
ByteArrayRequestEntity entity = new ByteArrayRequestEntity(requestBody.getBytes("utf-8"));
post.setRequestEntity(entity);
post.setFollowRedirects(false);
post.setRequestHeader("Content-Type", "text/xml;charset=utf-8");
post.setRequestHeader("Content-Length", String.valueOf(entity.getContentLength()));
String result = null;
StringBuffer resultBuffer = new StringBuffer();
try
{
client.executeMethod(post);
BufferedReader in = new BufferedReader(new InputStreamReader(post.getResponseBodyAsStream(), post.getResponseCharSet()));
String inputLine = null;
while ((inputLine = in.readLine()) != null)
{
resultBuffer.append(inputLine);
resultBuffer.append("\n");
}
in.close();
result = ConverterStringCode(resultBuffer.toString() , post.getResponseCharSet(), encode);
}
catch (Exception e)
{
result = "";
e.printStackTrace();
}