http请求工具类
2016-08-31 10:48
369 查看
package cc.com.util; import java.io.BufferedReader; import java.io.ByteArrayInputStream; import java.io.File; import java.io.FileReader; import java.io.InputStream; import java.io.InputStreamReader; import java.io.StringReader; import java.util.HashMap; import java.util.Map; import net.sf.json.JSONObject; import org.apache.commons.httpclient.HttpClient; import org.apache.commons.httpclient.HttpMethod; import org.apache.commons.httpclient.NameValuePair; import org.apache.commons.httpclient.SimpleHttpConnectionManager; import org.apache.commons.httpclient.methods.GetMethod; import org.apache.commons.httpclient.methods.InputStreamRequestEntity; import org.apache.commons.httpclient.methods.PostMethod; import org.apache.commons.httpclient.methods.PutMethod; import org.apache.commons.httpclient.methods.RequestEntity; import org.apache.commons.io.IOUtils; public class HttpServiceCaller { /** * @param requestURL * @param data * @return responseText * @throws Exception */ public static String postMethod(String requestURL, NameValuePair[] data) throws Exception { PostMethod postMethod = new PostMethod(requestURL); postMethod.setRequestBody(data); return call(requestURL, postMethod); } /** * @param requestURL * @param data * @return responseText * @throws Exception */ public static String postUTF8Method(String requestURL, NameValuePair[] data) throws Exception { PostMethod postMethod = new PostMethod(requestURL); postMethod.setRequestBody(data); postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); postMethod.addRequestHeader("Connection", "close"); return call(requestURL, postMethod); } /** * @author jackzhou * @param requestURL * @param data * @return * @throws Exception */ public static String postMethod(String requestURL, HashMap<String, String> postDate) throws Exception { NameValuePair[] data = new NameValuePair[postDate.entrySet().size()]; int i=0; for(Map.Entry<String, String> entry : postDate.entrySet()) { data[i] = new NameValuePair(entry.getKey(), entry.getValue()); i++; } PostMethod postMethod = new PostMethod(requestURL); postMethod.setRequestBody(data); postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); HttpClient httpClient = new HttpClient(); String responseText = null; int statusCode = httpClient.executeMethod(postMethod); if (statusCode != 200) { String errorMessage = IOUtils.toString(postMethod.getResponseBodyAsStream(), postMethod.getResponseCharSet()); throw new Exception("call failed : " + errorMessage); } responseText = IOUtils.toString(postMethod.getResponseBodyAsStream(), postMethod.getResponseCharSet()); return responseText; } public static String postMethod(String requestURL, HashMap<String, String> postDate, String encode) throws Exception { NameValuePair[] data = new NameValuePair[postDate.entrySet().size()]; int i=0; for(Map.Entry<String, String> entry : postDate.entrySet()) { data[i] = new NameValuePair(entry.getKey(), entry.getValue()); i++; } PostMethod postMethod = new PostMethod(requestURL); postMethod.setRequestBody(data); postMethod.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); HttpClient httpClient = new HttpClient(); String responseText = null; int statusCode = httpClient.executeMethod(postMethod); if (statusCode != 200) { String errorMessage = IOUtils.toString(postMethod.getResponseBodyAsStream(), encode); throw new Exception("call failed : " + errorMessage); } responseText = IOUtils.toString(postMethod.getResponseBodyAsStream(), encode); return responseText; } /** * @param requestURL * @return responseText * @throws Exception */ public static String getMethod(String requestURL) throws Exception { GetMethod getMethod = new GetMethod(requestURL); return call(requestURL, getMethod); } /** * @param requestURL * @param method * @return responseText * @throws Exception */ private static String call(String requestURL, HttpMethod method) throws Exception { HttpClient httpClient = new HttpClient(); //会报错 HTTP 503 special method .... // method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); // method.addRequestHeader("Connection", "close"); String responseText = null; try { int statusCode = httpClient.executeMethod(method); if (statusCode != 200) { String errorMessage = method.getResponseBodyAsString(); throw new Exception("call failed : " + errorMessage); } StringBuilder responseBody = new StringBuilder(); InputStream is = method.getResponseBodyAsStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while((line = br.readLine())!=null) { responseBody.append(line); } responseText = responseBody.toString(); br.close(); is.close(); } catch (Exception e) { throw e; } finally { try { SimpleHttpConnectionManager connectionManager = (SimpleHttpConnectionManager) httpClient.getHttpConnectionManager(); connectionManager.shutdown(); method.releaseConnection(); } catch(Exception e) { e.printStackTrace(); } } return responseText; } /** * @param requestURL * @return responseText * @throws Exception */ public static String getMethod2(String requestURL) throws Exception { GetMethod getMethod = new GetMethod(requestURL); return call2(requestURL, getMethod); } /** * @param requestURL * @param method * @return responseText * @throws Exception */ private static String call2(String requestURL, HttpMethod method) throws Exception { HttpClient httpClient = new HttpClient(); //会报错 HTTP 503 special method .... // method.addRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8"); // method.addRequestHeader("Connection", "close"); String responseText = null; try { int statusCode = httpClient.executeMethod(method); if (statusCode != 200) { String errorMessage = method.getResponseBodyAsString(); throw new Exception("call failed : " + errorMessage); } /* StringBuilder responseBody = new StringBuilder(); InputStream is = method.getResponseBodyAsStream(); BufferedReader br = new BufferedReader(new InputStreamReader(is)); String line; while((line = br.readLine())!=null) { responseBody.append(line); }*/ responseText = method.getResponseBodyAsString(); // br.close(); // is.close(); } catch (Exception e) { throw e; } finally { try { SimpleHttpConnectionManager connectionManager = (SimpleHttpConnectionManager) httpClient.getHttpConnectionManager(); connectionManager.shutdown(); method.releaseConnection(); } catch(Exception e) { e.printStackTrace(); } } return responseText; } public static String putMethod(String requestURL, HashMap<String, String> postDate) throws Exception { NameValuePair[] data = new NameValuePair[postDate.entrySet().size()]; int i=0; for(Map.Entry<String, String> entry : postDate.entrySet()) { data[i] = new NameValuePair(entry.getKey(), entry.getValue()); i++; } PutMethod putMethod = new PutMethod(requestURL); putMethod.addRequestHeader("Content-Type", "application/json;charset=UTF-8"); // method.addRequestHeader("Connection", "close"); new StringReader(""); //RequestEntity entity =new StringRequestEntity(JSONObject.fromObject(postDate).toString());; String str=JSONObject.fromObject(postDate).toString(); RequestEntity entity =new InputStreamRequestEntity( new ByteArrayInputStream(str.getBytes())); putMethod.setRequestEntity(entity); HttpClient httpClient = new HttpClient(); String responseText = null; int statusCode = httpClient.executeMethod(putMethod); System.out.println("http code:"+statusCode); if (statusCode <200 || statusCode>399) { String errorMessage = IOUtils.toString(putMethod.getResponseBodyAsStream(), putMethod.getResponseCharSet()); System.out.println("errorMsg:"+errorMessage); throw new Exception("call failed : " + errorMessage); } responseText = IOUtils.toString(putMethod.getResponseBodyAsStream(), putMethod.getResponseCharSet()); return responseText; } public static String postStringMethod(String requestURL,String postData) throws Exception { PostMethod putMethod = new PostMethod(requestURL); putMethod.addRequestHeader("Content-Type", "application/json;charset=UTF-8"); RequestEntity entity =new InputStreamRequestEntity( new ByteArrayInputStream(postData.getBytes())); putMethod.setRequestEntity(entity); HttpClient httpClient = new HttpClient(); String responseText = null; int statusCode = httpClient.executeMethod(putMethod); System.out.println("http code:"+statusCode); if (statusCode <200 || statusCode>399) { String errorMessage = IOUtils.toString(putMethod.getResponseBodyAsStream(), putMethod.getResponseCharSet()); System.out.println("errorMsg:"+errorMessage); throw new Exception("call failed : " + errorMessage); } responseText = IOUtils.toString(putMethod.getResponseBodyAsStream(), putMethod.getResponseCharSet()); return responseText; } }
相关文章推荐
- HTTP请求工具类(Java)
- Util:Http请求的工具类
- HttpClient4.3 post与get请求工具类完整示例
- Http请求工具类---将请求信息写入流
- HttpURLConnection网络请求工具类
- HttpClient(get/post)请求封装成工具类
- 使用Java原生API编写发送HTTP_POST请求的工具类
- Android工具类--Http请求的工具类
- Http封装请求工具类
- Http请求工具类
- C# HttpClientUtil 工具类 表单请求提交 附件上传下载
- httputil用http获取请求的工具类
- java http请求工具类
- HttpClientUtil请求http地址的工具类
- http https请求工具类
- 高德地图web端笔记;发送http请求的工具类
- http接口请求参数签名工具类的实现和测试代码
- Apache 大三方法HTTP请求链接响应之HttpClient的GET和POST工具类封装
- java http请求的get和post方法工具类
- 网络请求工具类HttpUtil