import net.sf.json.JSONObject;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Map;
public class HTTPClientUtil {
private static Logger logger = LoggerFactory.getLogger(HTTPClientUtil.class);
/**
* 向指定URL发送GET方法的请求
* @param url 发送请求的URL
* @return URL 所代表远程资源的响应结果
*/
public static String sendGet(String url) {
String result = "";
BufferedReader in = null;
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection connection = realUrl.openConnection();
// 设置通用的请求属性
connection.setRequestProperty("accept", "*/*");
connection.setRequestProperty("connection", "Keep-Alive");
connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 建立实际的连接
connection.connect();
// 获取所有响应头字段
Map<String, List<String>> map = connection.getHeaderFields();
// 遍历所有的响应头字段
for (String key : map.keySet()) {
System.out.println(key + "--->" + map.get(key));
}
// 定义 BufferedReader输入流来读取URL的响应
in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
String line;
while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送GET请求出现异常!" + e);
e.printStackTrace();
}
// 使用finally块来关闭输入流
finally {
try {
if (in != null) {
in.close();
}
} catch (Exception e2) {
e2.printStackTrace();
}
}
return result;
}
public static String doPost(String url, JSONObject jsonData) {
// 指定Post请求
HttpPost httpPost = new HttpPost(url);
// 创建httpclient
HttpClient httpClient = new DefaultHttpClient();
// 发送请求
HttpResponse httpResponse;
// 返回的json
String jsonObject = null;
// 封装post请求数据
StringEntity entity = new StringEntity(jsonData.toString(), "utf-8");
httpPost.setEntity(entity);
try {
// 发送请求
httpResponse = httpClient.execute(httpPost);
// 判断请求是否成功
if(httpResponse.getStatusLine().getStatusCode()==HttpStatus.SC_OK){
// 得到请求响应信息
String str = EntityUtils.toString(httpResponse.getEntity(), "utf-8");
// 返回json
return str;
}
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return jsonObject;
}
}
通用httpclient工具类
最新推荐文章于 2024-07-26 03:20:01 发布