java httpclient请求_JAVA发送HttpClient请求及接收请求结果过程

下面为本人自己在工作中写业务代码的,并不是通用的,只供自己下次使用时能有个查找地,及正处在困扰中的程序员借鉴。

推荐好点博客给大家看看:

1、写一个HttpRequestUtils工具类,包括post请求和get请求

package com.brainlong.framework.util.httpclient;

import net.sf.json.JSONObject;

import mons.httpclient.HttpStatus;

import org.apache.http.HttpResponse;

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.DefaultHttpClient;

import org.apache.http.util.EntityUtils;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import java.io.IOException;

import .URLDecoder;

public class HttpRequestUtils {

private static Logger logger = LoggerFactory.getLogger(HttpRequestUtils.class);    //日志记录

/**

* httpPost

* @param url  路径

* @param jsonParam 参数

* @return

*/

public static JSONObject httpPost(String url,JSONObject jsonParam){

return httpPost(url, jsonParam, false);

}

/**

* post请求

* @param url         url地址

* @param jsonParam     参数

* @param noNeedResponse    不需要返回结果

* @return

*/

public static JSONObject httpPost(String url,JSONObject jsonParam, boolean noNeedResponse){

//post请求返回结果

DefaultHttpClient httpClient = new DefaultHttpClient();

JSONObject jsonResult = null;

HttpPost method = new HttpPost(url);

try {

if (null != jsonParam) {

//解决中文乱码问题

StringEntity entity = new StringEntity(jsonParam.toString(), "utf-8");

entity.setContentEncoding("UTF-8");

entity.setContentType("application/json");

method.setEntity(entity);

}

HttpResponse result = httpClient.execute(method);

url = URLDecoder.decode(url, "UTF-8");

/**请求发送成功,并得到响应**/

if (result.getStatusLine().getStatusCode() == 200) {

String str = "";

try {

/**读取服务器返回过来的json字符串数据**/

str = EntityUtils.toString(result.getEntity());

if (noNeedResponse) {

return null;

}

/**把json字符串转换成json对象**/

jsonResult = JSONObject.fromObject(str);

} catch (Exception e) {

logger.error("post请求提交失败:" + url, e);

}

}

} catch (IOException e) {

logger.error("post请求提交失败:" + url, e);

}

return jsonResult;

}

/**

* 发送get请求

* @param url    路径

* @return

*/

public static JSONObject httpGet(String url){

//get请求返回结果

JSONObject jsonResult = null;

try {

DefaultHttpClient 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());

/**把json字符串转换成json对象**/

jsonResult = JSONObject.fromObject(strResult);

url = URLDecoder.decode(url, "UTF-8");

} else {

logger.error("get请求提交失败:" + url);

}

} catch (IOException e) {

logger.error("get请求提交失败:" + url, e);

}

return jsonResult;

}

}

2、写业务代码发送Http请求

3、MVC配置文件设置Controller扫描目录

4、接收Http请求

接收post请求

@Controller

@RequestMapping(value = "/api/platform/exceptioncenter/exceptioninfo")

public class ExceptionInfoController {

//注入

@Autowired

private ExceptionInfoBiz exceptionInfoBiz;

/**

* 创建异常信息请求

* @param requestBody 请求消息内容

* @param request 请求消息头

* @return jsonObject

*/

@RequestMapping(

value="/create",

method = RequestMethod.POST

)

public ModelAndView createExceptionInfo(@RequestBody String requestBody, HttpServletRequest request) {

JSONObject jsonObject = JSONObject.fromObject(requestBody);

ComExceptionInfo comExceptionInfo = new ComExceptionInfo();

comExceptionInfo.setProjectName(jsonObject.getString("projectName"));

comExceptionInfo.setTagName(jsonObject.getString("tagName"));

exceptionInfoBiz.insert(comExceptionInfo);

//返回请求结果

JSONObject result= new JSONObject();

result.put("success", "true");

return new ModelAndView("", ResponseUtilsHelper.jsonSuccess(result.toString()));

}

}

接收get请求

@Controller

@RequestMapping(value="/api/platform/messagecenter/messages/sms")

public class SmsController {

@Autowired

SmsSendBiz smsSendBiz;

/**

* 接收手机号码和内容往短信发送表插入一条记录

* @param requestbody 请求消息内容

* @param request 请求消息头

* @return jsonObject

*/

@RequestMapping(

value="/send",

method= RequestMethod.GET

)

public ModelAndView sendSms(@RequestBody String requestbody, HttpServletRequest request) {

//获取请求URL及url后面传输的参数

String url = request.getRequestURL() + "?" + request.getQueryString();

url = BuildRequestUrl.decodeUrl(url);

String telePhone = RequestUtils.getStringValue(request, "telePhone");

String content = RequestUtils.getStringValue(request, "content");

smsSendBiz.insertTtMsQuequ(telePhone,content);

return new ModelAndView("", ResponseUtilsHelper.jsonResult("", true));

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值