//接口与对象的条件绑定并返回json数据 public static String executeHttpRequestByGetType(String url,Object obj ) { HttpClient client = new HttpClient(); StringBuffer sb = new StringBuffer(url); Map<String, String> keyValueMap=objectToMap(obj); PostMethod postMethod = null; try { //设置请求参数 if (keyValueMap != null) { Iterator it = keyValueMap.entrySet().iterator(); if (keyValueMap.size() > 0) { sb.append("?"); while (it.hasNext()) { Map.Entry<String, String> entry = (Map.Entry<String, String>) it.next(); sb.append(entry.getKey() + "=" + entry.getValue() + "&"); } sb.deleteCharAt(sb.length()-1); } } postMethod = new PostMethod(sb.toString()); //log.debug("query uri ===============" + postMethod.getURI()); // 设置成了默认的恢复策略,在发生异常时候将自动重试3次, postMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler()); //设置参数编码为gbk postMethod.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8"); //设置超时时间 postMethod.getParams().setParameter(HttpMethodParams.SO_TIMEOUT, 200000); //HttpClient第一步中创建好的实例的 executeMethod 方法来执行第二步中创建好的 method 实例 int statusCode = client.executeMethod(postMethod); if (statusCode != HttpStatus.SC_OK) { //log.info("request '" + url + "' failed,the status is not 200,status:" + statusCode); return ""; } String responseBody = postMethod.getResponseBodyAsString(); return responseBody; } catch (Exception e) { //log.error("发生异常!请检查网络和参数", e); } finally { if(postMethod!=null){ postMethod.releaseConnection(); } } return null; } @Test public void test(){ TestBean be=new TestBean(); InterfaceData da=new InterfaceData(); String url= "http://59.111.44.97:9096/webapi/TakeAll";//接口地址 Map<String, String> msp=new HashMap<String, String>(); String s=da.executeHttpRequestByGetType(url,be); //JSONUtil.deserialize(s); System.out.println(s); } //object转化为Map public static Map<String,String> objectToMap(Object obj){ Map<String,String> map=null; if(obj==null){ return map; }else{ try { map= new HashMap<String,String>(); BeanInfo beanInfo = Introspector.getBeanInfo(obj.getClass()); PropertyDescriptor[] propertyDescriptors = beanInfo.getPropertyDescriptors(); for (PropertyDescriptor property : propertyDescriptors) { String key = property.getName(); if (key.compareToIgnoreCase("class") == 0) { continue; } Method getter = property.getReadMethod(); Object value = getter!=null ? getter.invoke(obj) : null; if(value!=null){ map.put(key, value.toString()); } } return map; } catch (IntrospectionException e) { // TODO Auto-generated catch block e.printStackTrace(); }catch (IllegalAccessException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IllegalArgumentException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (InvocationTargetException e) { // TODO Auto-generated catch block e.printStackTrace(); } return null; } }
相关推荐
在本案例“mvc后台调用webapi接口”中,我们将探讨如何在MVC应用中调用WebAPI接口来实现数据交互。 WebAPI是.NET Framework的一部分,它允许开发者创建RESTful服务。REST(Representational State Transfer)是一种...
在Java编程中,HttpClient是一个非常常用的库,用于执行HTTP请求,可以用来与各种Web服务进行交互,包括调用API接口。在这个特定的示例中,我们关注的是如何使用HttpClient来调用百度地图的API,创建一个简单的Demo...
当调用这个方法时,WPF UI不会被阻塞,因为异步操作在后台执行。当请求完成时,我们更新UI,展示返回的数据。 为了更进一步,你可以扩展此示例,支持POST、PUT、DELETE等其他HTTP方法,只需在`HttpClient`上调用...
本篇文章将深入讲解如何使用`HttpURLConnection`类来模拟浏览器请求,并通过实例展示其在接口调用中的应用。 首先,`HttpURLConnection`是`java.net.URLConnection`的一个子类,用于处理HTTP协议。在使用`...
return HttpClientHelper.Post, T>(url, model, headers); } public static U Get, T>(string url, T model, NameValueCollection headers = null) { return HttpClientHelper.Get, T>(url, model, headers); ...
2. Java类:包含调用接口的逻辑,包括发送请求、处理响应和展示结果。 3. 测试数据:可能是一些示例图片,用于测试接口功能。 4. Maven或Gradle配置:项目构建和依赖管理。 5. 主函数或启动脚本:运行示例代码的入口...
Java后台实现支付宝支付接口和支付宝订单查询接口 本文主要介绍了Java后台实现支付宝支付接口和支付宝订单查询接口的详细过程,旨在帮助开发者快速实现支付宝支付功能。 一、申请公司企业账号并开通应用 首先,...
本案例主要涉及如何在WinForm应用中通过HttpClient调用使用OAuth2.0授权的WebAPI接口。OAuth2.0是一种广泛采用的授权框架,用于安全地授予第三方应用访问用户资源的权限,而无需共享用户凭据。 首先,让我们深入...
在IT行业中,与“百度搜索接口java后台”相关的知识点涵盖了搜索引擎接口的使用、Java编程语言以及后台服务开发。本文将详细解析这些关键概念,并提供如何使用Java后台来对接百度搜索接口的方法。 首先,我们需要...
本文档将详细介绍如何使用 C# 创建和调用 RESTful 接口,包括 RESTful 的基本概念、如何构建 RESTful 风格的 API、服务端的具体实现步骤以及客户端如何调用服务端接口等内容。此外,还将提供详细的代码示例,以便...
在SSM框架下,通过HTTP协议调用接口是一种常见的交互方式,尤其是在分布式系统或者微服务架构中。HTTP协议因其简单、灵活和无状态的特性,被广泛用于客户端和服务器之间的通信。 在SSM框架中,HTTP接口调用通常涉及...
在Android开发中,调用Web Service接口是常见的数据交互方式,尤其在实现用户登录功能时。Web Service通常采用SOAP或RESTful API的形式提供服务,允许客户端应用程序(如Android应用)发送请求并接收响应。本教程将...
本文将详细讲解如何在.NET后台使用这两种方法调用WebAPI,以及如何实现文件上传。 1. GET方式调用WebAPI: GET请求通常用于获取资源,不修改服务器状态。在.NET中,可以使用HttpClient类来发送GET请求。首先,需要...
本话题将探讨如何在Flutter中创建一个登录页面以及如何通过HttpClient调用简单的接口来进行登录逻辑处理。 1. **Flutter框架介绍**:Flutter是Google推出的一个开源UI工具包,用于构建高性能、高保真、跨平台的移动...
后台API通常是指运行在服务器端的接口,允许客户端应用程序与其通信。 在WinForm中调用后台API,主要涉及以下步骤: 1. **创建HTTP请求**:使用.NET Framework或.NET Core提供的HttpClient类来创建HTTP请求。首先...
asp.net core3.1 webAPI对接企业微信上传临时素材,返回media_id. 来自于实际项目;
6. **异步操作**:对于性能要求高的应用,HttpClient库可能会提供异步请求接口,允许在后台线程中执行HTTP请求,而不阻塞主线程,提高用户体验。 7. **可扩展性**:HttpClient库通常会设计为模块化,允许开发者根据...
在IT行业中,调用第三方接口是一项常见的任务,特别是在软件开发中。C#作为一种广泛应用的编程语言,被广泛用于构建各种应用程序,包括与外部系统交互。本文将深入探讨新中新电子如何利用C#来调用第三方接口,以及在...
在微信支付接口文档也说明了,需要使用 multipart/form-data 的方式发送请求。.NET 提供了 MultipartFormDataContent 类型,帮助我们构建表单请求,故有以下代码: var form = new MultipartFormDataContent() { {...
HttpClient Post提交多文件及多个普通参数,已经封装成工具类。 需传入 要请求的url 普通参数map 例 map.put("param1","张三"); 需要传入的文件流map 其中key为文件名 服务端接收无乱码。