实现客户给的URL接口,以爬虫的方式
来源:互联网 发布:程序员是吃青春饭的吗 编辑:程序博客网 时间:2024/04/26 12:45
一、Post方式
public static String sendPost(String url, String param)throws RuntimeException {StringBuffer result = new StringBuffer();HttpURLConnection httpConn = null;PrintWriter out = null;BufferedReader in = null;try {URL httpurl = new URL(url);httpConn = (HttpURLConnection) httpurl.openConnection();httpConn.setDoOutput(true);httpConn.setDoInput(true);out = new PrintWriter(httpConn.getOutputStream());out.print(param);out.flush();out.close();// 采用UTF-8编码,解决中文乱码in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(), ENCODED));String line;while ((line = in.readLine()) != null) {result.append(line);}in.close();} catch (Exception e) {System.err.println("post方式发送失败,URL=" + url + ",params=" + param+ e.getMessage());LOG.error("post方式发送失败,URL=" + url + ",params=" + param+ e.getMessage());throw new RuntimeException(e);} finally {if (httpConn != null) {httpConn.disconnect();}if (out != null) {out.close();}if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return result.toString();}
/** * GET方式发送 * * @param url * @param param * @return */public static String sendGet(String url, String param) throws RuntimeException {StringBuffer result = new StringBuffer();BufferedReader in = null;try {String urlName = url + "?" + param;//URL U = new URL(urlName);URLConnection connection = U.openConnection();connection.connect();// 采用UTF-8编码,解决中文乱码in = new BufferedReader(new InputStreamReader(connection.getInputStream(), ENCODED));String line;while ((line = in.readLine()) != null) {result.append(line);}in.close();} catch (Exception e) {System.err.println("get方式发送失败,URL="+url+",params="+param+e.getMessage());LOG.error("get方式发送失败,URL="+url+",params="+param+e.getMessage());throw new RuntimeException(e);} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}return result.toString();}
/** * POST方式发送 * @param url * @param param * @return */public static InputStream sendPostToInputStream(String url, String param) throws RuntimeException{StringBuffer result = new StringBuffer();HttpURLConnection httpConn = null;PrintWriter out = null;BufferedReader in = null;try {URL httpurl = new URL(url);httpConn = (HttpURLConnection) httpurl.openConnection();httpConn.setDoOutput(true);httpConn.setDoInput(true);out = new PrintWriter(httpConn.getOutputStream());out.print(param);out.flush();out.close();// 采用UTF-8编码,解决中文乱码in = new BufferedReader(new InputStreamReader(httpConn.getInputStream(),ENCODED));String line;while ((line = in.readLine()) != null) {result.append(line);}in.close();return new ByteArrayInputStream(result.toString().getBytes());} catch (Exception e) {System.err.println("post方式发送失败,URL="+url+",params="+param+e.getMessage());throw new RuntimeException(e);} finally {if (httpConn != null) {httpConn.disconnect();}if (out != null) {out.close();}if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}}
/** * GET方式发送 * * @param url * @param param * @return */public static InputStream sendGetToInputStream(String url, String param) throws RuntimeException{StringBuffer result = new StringBuffer();BufferedReader in = null;try {String urlName = url + "?" + param;//URL U = new URL(urlName);URLConnection connection = U.openConnection();connection.connect();// 采用UTF-8编码,解决中文乱码in = new BufferedReader(new InputStreamReader(connection.getInputStream(), ENCODED));String line;while ((line = in.readLine()) != null) {result.append(line);}in.close();return new ByteArrayInputStream(result.toString().getBytes());} catch (Exception e) {System.err.println("get方式发送失败,URL="+url+",params="+param+e.getMessage());throw new RuntimeException(e);} finally {if (in != null) {try {in.close();} catch (IOException e) {e.printStackTrace();}}}}
/** * httpClient post发送json * @author Mosnter * @param url * @param json * @return */public static JSONObject post(String url, String json) {HttpClient client = new DefaultHttpClient();HttpPost post = new HttpPost(url);JSONObject response = null;try {StringEntity s = new StringEntity(json);s.setContentEncoding("UTF-8");s.setContentType("application/json");post.setEntity(s);HttpResponse res = client.execute(post);if (res.getStatusLine().getStatusCode() == HttpStatus.OK.value()) {HttpEntity entity = res.getEntity();String result = EntityUtils.getContentCharSet(entity);response = JSONObject.fromObject(result);}} catch (Exception e) {throw new RuntimeException(e);}return response;}
/** * 获取用户真实IP * * @author cnpayd * @param request * @return */public static String getRealIp(HttpServletRequest request) { String ip = request.getHeader("x-forwarded-for"); if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getHeader("WL-Proxy-Client-IP"); } if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { ip = request.getRemoteAddr(); } return ip; }
0 0
- 实现客户给的URL接口,以爬虫的方式
- c++以代理的方式来实现接口化编程
- java以URL方式调用接口
- 接口的实现方式
- myibatis--以接口的方式编程
- mybatis --- 以接口的方式进行编程
- C++重载逗号,括号,类型转换,实现以奇怪的方式给变量赋值
- 客户给我的感谢信
- 以form表单的形式传递参数给rest接口
- 以form表单的形式传递参数给rest接口
- url以GET方式传参数的时候带时间
- [爬虫] 爬虫的实现
- 以脚本的方式实现启用系统还原
- 以 DirectUI 方式实现的ImageButton
- 以c++的方式实现单链表
- Mybatis学习(2)以接口的方式编程
- Mybatis学习(2)以接口的方式编程
- Mybatis入门(二):以接口的方式编程
- C语言和C++的不同之处和相通之处
- O(logn)时间复杂度求Fibonacci数列(java)
- Metasploit测试暴雷漏洞 (编号CVE-2012-1889)
- Xcode 自动生成代码注释文档
- HDU 1097 A hard puzzle 求个位数
- 实现客户给的URL接口,以爬虫的方式
- Invert Binary Tree
- 二分图不带权匹配
- 在action跳转的jsp页面中引入静态js、css文件
- Kafka集群partition replication自动分配分析
- C# 获取鼠标坐标
- 高并发网站之解决策略
- 字符流
- Leetcode 19 Remove Nth Node From End of List