前言
请求http的Demo是个人亲测过,目前该方式已经在线上运行着。因为是http请求,所有发送post 和get 请求的demo都有在下方贴出,包括怎么测试,大家可直接 copy到自己的项目中使用。
正文
使用须知
为了避免大家引错包我把依赖和涉及到包路径给大家
import java.net.HttpURLConnection; import java.net.URI; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.client.utils.URIBuilder; 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.util.EntityUtils; import com.fasterxml.jackson.databind.ObjectMapper;
<dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpcore</artifactId> <version>4.4.8</version> </dependency> <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <version>4.5.3</version> </dependency>
HTTP 发送 get 请求
首先我们引入两个包
发送get请求的工具类,可直接 copy 使用即可
另外,我抛出异常的代码大家改成自己业务的异常,不需要就删除掉。
参数说明:
host:ip
servUri:url
reString:参数
public static String getHttpData(String host, String servUri, String reString) throws Exception { StringBuffer sb = new StringBuffer(); sb.append("getHttpData:host:" + host + ",servUri:" + servUri + ",reString:" + reString); String strResp = null; try { URI uri = new URIBuilder().setScheme("http").setHost(host).setPath(servUri) .setParameter("strInfo", reString).build(); HttpGet httpGet = new HttpGet(uri); CloseableHttpClient client3 = HttpClients.createDefault(); HttpResponse resp; resp = client3.execute(httpGet); if (resp.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) { strResp = EntityUtils.toString(resp.getEntity()); logger.info("the return result:{}", strResp); } else { logger.info("Error Response:", resp.getStatusLine().toString()); throw new CommonBusinessException(CommonConstants.TASK_RELEASE_WCF, CommonConstants.TASK_RELEASE_WCF_DESC); } } catch (Exception e) { logger.error(sb.toString() + ":" + e.getMessage(), e.getCause()); throw new CommonBusinessException(CommonConstants.TASK_RELEASE_WCF, CommonConstants.TASK_RELEASE_WCF_DESC); } return strResp; }
HTTP 发送 post 请求
发送post分两种,我分两种的原因是为了让大家方便,想传对象和 json 可以直接复制过用就可以用,不用你们在转了。
第一种是直接接收json
参数明说:
url:url
json:参数
public static String doPostData(String url, String json) throws Exception { DefaultHttpClient client = new DefaultHttpClient(); HttpPost post = new HttpPost(url); String result = ""; HttpResponse res = null; try { StringEntity s = new StringEntity(json.toString(), "UTF-8"); s.setContentType("application/json"); post.setHeader("Accept", "application/json"); post.setHeader("Content-type", "application/json; charset=utf-8"); post.setEntity(s); res = client.execute(post); if (res.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { result = EntityUtils.toString(res.getEntity()); return HttpStatus.SC_OK + ""; } } catch (Exception e) { if(res == null) { return "HttpResponse 为 null!"; } throw new RuntimeException(e); } if(res == null || res.getStatusLine() == null) { return "无响应"; } return res.getStatusLine().getStatusCode() + ""; }
@Test public void test12() throws Exception { String HOST = "http://eipwcf.aspirecn.com/SvcEF/Service1.svc/WCF_EF_MSA_GetDataInfo_P"; HttpClient client = new HttpClient(); JSONObject json = new JSONObject(); json.put("msgId", msgId); String reslut=client.doPostData(HOST, json); }
第二种是参数是对象
参数说明:
url:url
tram:对象
public static String doHttpPostData(String url, TaskReleaseApprovalModel tram) throws Exception { StringBuffer sb = new StringBuffer(); sb.append("doHttpPostData:url:" + url + ",tram:" + tram.toString() + ",contentType:" + contentType); logger.info(sb.toString()); String tmpString = ""; HttpPost request = new HttpPost(url); request.setHeader("Accept", "application/json"); request.setHeader("Content-type", "application/json"); ObjectMapper mapper = new ObjectMapper(); String jsonString; try { jsonString = mapper.writeValueAsString(tram); StringEntity entity = new StringEntity(jsonString, "UTF-8"); request.setEntity(entity); CloseableHttpClient client = HttpClients.createDefault(); HttpResponse response = client.execute(request); if (response.getStatusLine().getStatusCode() == HttpURLConnection.HTTP_OK) { tmpString = EntityUtils.toString(response.getEntity()); logger.info("the post result:tmpString:{}", tmpString); } else { logger.info("the post failure:tmpString:", tmpString); throw new CommonBusinessException(CommonConstants.TASK_RELEASE_WCF, CommonConstants.TASK_RELEASE_WCF_DESC); } } catch (Exception e) { logger.error(sb.toString() + ":" + e.getMessage(), e.getCause()); throw new CommonBusinessException(CommonConstants.TASK_RELEASE_POSTWCF, CommonConstants.TASK_RELEASE_POSTWCF_DESC); } return tmpString; }
这个方法我想不用写测试类大家也会用,传过去对象和地址就可以了,很方便很简单。
以上所述是小编给大家介绍的Java发送HTTP请求详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对小牛知识库网站的支持!
本文向大家介绍java利用java.net.URLConnection发送HTTP请求的方法详解,包括了java利用java.net.URLConnection发送HTTP请求的方法详解的使用技巧和注意事项,需要的朋友参考一下 一、前言 如何通过Java发送HTTP请求,通俗点讲,如何通过Java(模拟浏览器)发送HTTP请求。 Java有原生的API可用于发送HTTP请求,即java.net.U
问题内容: 让我们假设这个网址… (此处的ID需要在POST请求中发送) 我想将其发送到服务器的,该服务器在POST方法中接受它。 如何在Java中执行此操作? 我尝试了这个: 但是我仍然不知道如何通过POST发送 问题答案: 由于原始答案中的某些类已在Apache HTTP Components的较新版本中弃用,因此,我将发布此更新。 顺便说一句,你可以在此处访问完整的文档以获取更多示例。
本文向大家介绍对Python发送带header的http请求方法详解,包括了对Python发送带header的http请求方法详解的使用技巧和注意事项,需要的朋友参考一下 简单的header 包含较多元素的header 以上这篇对Python发送带header的http请求方法详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
很多时候我们需要在页面打开的时候,读取远程的内容,然后在当前页面显示. 这就需要用到 http请求了. vue页面调用http请求 vuejs 内置了对发送http请求的支持. 只需要在对应页面的script 标签内加上对应的代码就好. 例如: 我们新增一个页面,叫 "博客列表页" : src/components/BlogList.vue, 内容如下: <template> <div >
本文向大家介绍详解golang中发送http请求的几种常见情况,包括了详解golang中发送http请求的几种常见情况的使用技巧和注意事项,需要的朋友参考一下 方式一 使用http.Newrequest 先生成http.client -> 再生成 http.request -> 之后提交请求:client.Do(request) -> 处理返回结果,每一步的过程都可以设置一些具体的参数,下面是一个
问题内容: 在Java中,如何编写HTTP请求消息并将其发送到HTTP WebServer? 问题答案: 你可以使用。 示例(从此处开始),进行了改进。包括在链接腐烂的情况下: