`

JAVA提交

    博客分类:
  • Java
 
阅读更多
package com.marco.common;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URI;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.NameValuePair;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
import org.apache.log4j.Logger;

/**
 * @author 马弦
 * @date 2017年10月23日 下午2:49
 * HttpClient工具类
 */
public class HttpUtil {
	
	private static Logger logger = Logger.getLogger(HttpUtil.class);

	/**
	 * get请求
	 * @return
	 */
	public static String doGet(String url) {
        try {
        	HttpClient client = new DefaultHttpClient();
            //发送get请求
            HttpGet request = new HttpGet(url);
            HttpResponse response = client.execute(request);
 
            /**请求发送成功,并得到响应**/
            if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) {
                /**读取服务器返回过来的json字符串数据**/
                String strResult = EntityUtils.toString(response.getEntity());
                
                return strResult;
            }
        } 
        catch (IOException e) {
        	e.printStackTrace();
        }
        
        return null;
	}
	
	/**
	 * post请求(用于key-value格式的参数)
	 * @param url
	 * @param params
	 * @return
	 */
	public static String doPost(String url, Map params){
		
		BufferedReader in = null;  
        try {  
            // 定义HttpClient  
            HttpClient client = new DefaultHttpClient();  
            // 实例化HTTP方法  
            HttpPost request = new HttpPost();  
            request.setURI(new URI(url));
            
            //设置参数
            List<NameValuePair> nvps = new ArrayList<NameValuePair>(); 
            for (Iterator iter = params.keySet().iterator(); iter.hasNext();) {
    			String name = (String) iter.next();
    			String value = String.valueOf(params.get(name));
    			nvps.add(new BasicNameValuePair(name, value));
    			
    			//System.out.println(name +"-"+value);
    		}
            request.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8));
            
            HttpResponse response = client.execute(request);  
            int code = response.getStatusLine().getStatusCode();
            if(code == 200){	//请求成功
            	in = new BufferedReader(new InputStreamReader(response.getEntity()  
                        .getContent(),"utf-8"));
                StringBuffer sb = new StringBuffer("");  
                String line = "";  
                String NL = System.getProperty("line.separator");  
                while ((line = in.readLine()) != null) {  
                    sb.append(line + NL);  
                }
                
                in.close();  
                
                return sb.toString();
            }
            else{	//
            	System.out.println("状态码:" + code);
            	return null;
            }
        }
        catch(Exception e){
        	e.printStackTrace();
        	
        	return null;
        }
	}
	
	/**
	 * post请求(用于请求json格式的参数)
	 * @param url
	 * @param params
	 * @return
	 */
	public static String doPost(String url, String params) throws Exception {
		
		CloseableHttpClient httpclient = HttpClients.createDefault();
		HttpPost httpPost = new HttpPost(url);// 创建httpPost   
    	httpPost.setHeader("Accept", "application/json"); 
    	httpPost.setHeader("Content-Type", "application/json");
    	String charSet = "UTF-8";
    	StringEntity entity = new StringEntity(params, charSet);
    	httpPost.setEntity(entity);        
        CloseableHttpResponse response = null;
        
        try {
        	
        	response = httpclient.execute(httpPost);
            StatusLine status = response.getStatusLine();
            int state = status.getStatusCode();
            if (state == HttpStatus.SC_OK) {
            	HttpEntity responseEntity = response.getEntity();
            	String jsonString = EntityUtils.toString(responseEntity);
            	return jsonString;
            }
            else{
				 logger.error("请求返回:"+state+"("+url+")");
			}
        }
        finally {
            if (response != null) {
                try {
                    response.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            try {
				httpclient.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
        }
        return null;
	}
	
}
  
分享到:
评论

相关推荐

    java提交spark任务到yarn平台的配置讲解共9页.pdf.zip

    Java提交Spark任务到YARN平台是一项常见的大数据处理操作,它结合了Java的编程能力和Spark的高性能计算框架,以及Hadoop的资源管理系统YARN。在这个过程中,开发者需要理解多个关键概念和配置步骤,以便有效地调度和...

    zimg 的JAVA提交图片的演示程序

    【标题】:“zimg 的JAVA提交图片的演示程序” 在IT行业中,图像处理是一个不可或缺的部分,尤其是在网站开发、社交媒体和各种在线服务中。Zimg是一个高效、轻量级的图片服务器,它支持动态调整图片大小、裁剪、...

    java提交spark任务到yarn平台的配置讲解共9页

    在Spark生态系统中,Java作为广泛使用的编程语言...总的来说,Java提交Spark任务到YARN平台涉及环境配置、代码编写、任务打包和提交等多个步骤。理解并熟练掌握这些步骤对于开发和运行大规模分布式Spark应用至关重要。

    南阳理工学院OJ_个人AC代码包(Java提交)

    【南阳理工学院OJ_个人AC代码包(Java提交)】是针对Java初学者的一份宝贵资源,它包含了参与ACM国际大学生程序设计竞赛(ICPC)时在南阳理工学院在线评测系统(OJ)上获得正确答案的代码实例。这些代码展示了如何用...

    毕设项目仓库管理系统java提交最终源码.zip

    毕设项目仓库管理系统java提交最终源码.zip

    Java提交后获取网页源代码

    利用java进行网页的源代码获取 可以用在数据采集使用 可用于安卓平台

    PersonalProject-Java:wordcount-Java提交仓库

    在本项目"PersonalProject-Java:wordcount-Java提交仓库"中,主要涉及的是使用Java编程语言实现的一个词频统计(Word Count)程序。词频统计是大数据处理领域中的一个经典示例,常用于演示分布式计算框架如Hadoop或...

    java导入.sql文件到数据库程序

    自己写的java导入.sql文件到数据库,部署项目时可直接调用。内部包含源码。共享给大家,如有疑问,发邮件到 yichangjiang@sina.com 可与大家共同探讨。程序及说明在runjar目录下。

    java实现作业提交系统

    【Java实现作业提交系统】是一种基于Java编程语言构建的在线平台,主要用于教育环境中接收和管理学生的作业提交。这个系统能够支持多人同时在线提交作业,提高了教学管理效率,减轻了教师的工作负担。它还具备了一些...

    Java编程艺术 PDF

    第7章 使用Java提交HTML 205 7.1 使用JEditorPane提交HTML 206 7.2 处理超链接事件 206 7.3 编写Mini Web浏览器 207 7.3.1 MiniBrowser类 208 7.3.2 MiniBrowser类的变量 213 7.3.3 MiniBrowser类的构造函数 214 ...

    提交代码怎么做

    提交代码怎么做

    Java 模拟Ajax POST GET 提交代码

    Java 模拟Ajax POST GET 提交代码,实测很好用。

    java实现防止表单重复提交

    服务器端避免表单的重复提交,利用同步令牌来解决重复提交的基本原理如下:(1)用户访问提交数据的页面,服务器端在这次会话中,创建一个session对象,并产生一个令牌值,将这个令牌值作为隐藏输入域的值,随表单一起发送到...

    java+redis+lua实现重复提交操作拦截.zip

    本项目"java+redis+lua实现重复提交操作拦截"旨在解决这个问题,通过结合Java、Redis和Lua技术来构建一个高效的解决方案。以下是相关知识点的详细说明: 1. **Java AOP(面向切面编程)**: - AOP是一种编程范式,...

    Java Web表单重复提交的解决方案

    在我们进行Java Web开发时,提交一个action处理请求后(或者提交一个表单后),进行刷新操作,或按F5键时会出现action处理重复执行的情况,数据库中会出现多条同样的记录,解决这种问题的方法有多种,但最安全有效的...

    RMI-File-Submission-System-master.zip_java_submission_tornkaj

    《基于RMI的Java提交系统详解》 在Java编程领域,远程方法调用(Remote Method Invocation,简称RMI)是一项核心技术,它允许一个Java对象调用另一个在不同JVM上的对象的方法。在这个名为“RMI-File-Submission-...

    点击回车提交表单,应用Java技术实现。

    #### 二、使用Java技术实现表单提交 虽然题目中提到“应用Java技术实现”,但实际上这段代码主要涉及的是HTML和JavaScript。不过,在Web开发领域内,“Java技术”可能是指包括Java后端处理在内的整体Web开发流程。...

    接入发送钉钉的demo

    一个接入钉钉的通知小demo,可以直接拿去用,把里面的jar包传私服上,pom文件添加下,配置下自己的dingding.properties,里面的参数直接看代码吧,参数找你们企业钉钉管理员要。可以调用里面的方法先获取所有的部门...

    java实现svn更新和提交.rar

    Java 实现 SVN 更新和提交是基于版本控制系统 Subversion(简称 SVN)进行的,它主要用于团队协作中的代码管理和版本控制。Subversion 提供了多种接口,包括命令行工具、图形界面工具以及 API,使得开发者能够在各种...

Global site tag (gtag.js) - Google Analytics