精华内容
下载资源
问答
  • Java访问远程接口

    千次阅读 2019-06-28 23:54:44
    Java 应用程序可以直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache ...

    Java 应用程序可以直接通过 HTTP 协议来访问网络资源。虽然在 JDK 的net包中已经提供了访问 HTTP 协议的基本功能,但是对于大部分应用程序来说,JDK 库本身提供的功能还不够丰富和灵活。HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效、功能丰富的支持 HTTP 协议的客户端编程工具包。

    .net包的HttpURLConnection

    			URL u=new URL("http://t.weather.sojson.com/api/weather/city/101030100");
    			//获取连接对象
    			HttpURLConnection conn=(HttpURLConnection) u.openConnection();
    			//连接
    			conn.connect();
    			//获取输入流
    			InputStream in=conn.getInputStream();
    			//读取输入流
    			int r;
    			byte[] bs=new byte[1024];
    			StringBuffer sb=new StringBuffer();
    			while((r=in.read(bs))!=-1) {
    				sb.append(new String(bs, 0, r));
    			}		
    			in.close();
    			System.out.println(sb.toString());
    

    运行结果
    获取到了天津的天气信息
    在这里插入图片描述

    HttpClient

    HttpClient支持 HTTP 协议最新的版本和建议
    实现了所有 HTTP 的方法(GET,POST,PUT,HEAD 等)
    支持自动转向
    支持 HTTPS 协议
    支持代理服务器等

    		String urlpath="http://www.ariko.cn:8080/BaseProjectSSM/test/t1";
    		//相当于打开了一个浏览器
    		CloseableHttpClient hc=HttpClients.createDefault();
    		//一个get请求对象,包装的请求地址,相当于浏览器中输入了网址
    		HttpGet get=new HttpGet(urlpath);
    		//当客户端关闭请求的时候,通知服务端也关闭连接。
    		get.setHeader("Connection","close");
    
    		HttpResponse resp=null;
    		HttpEntity entity=null;
    		try {
    			resp=hc.execute(get);	//回车了,得到了服务端响应的数据,
    			entity=resp.getEntity();	//请求体,响应体对象
    			String result=EntityUtils.toString(entity);
    			System.out.println(result);
    		} catch (ClientProtocolException e) {
    			e.printStackTrace();
    		} catch (IOException e) {
    			e.printStackTrace();
    		}finally {
    			try {  //关闭连接
    				if(entity!=null)EntityUtils.consume(entity);
    				if(get!=null)get.abort();
    				if(hc!=null)hc.close();
    			} catch (IOException e) {
    				e.printStackTrace();
    			}
    		}	
    

    运行结果

    这个接口是我的网站上开的一个测试接口,就返回一段字符串。
    在这里插入图片描述

    编码问题

    若遇到乱码,可使用EntityUtils进行字符转换处理。

    String result=new String(EntityUtils.toByteArray(entity),"UTF-8");
    

    判断返回码

    如果换回码==200再读取返回数据

    			if(resp.getStatusLine().getStatusCode()==200) {
    				entity=resp.getEntity();
    			}
    

    设置请求时间

    为了防止等待过长,可以设置超时时间

    		RequestConfig config = RequestConfig.custom()
    				.setConnectTimeout(5000)  //设置连接超时时间
    				.setConnectionRequestTimeout(1000) //设置请求超时时间
    				.setSocketTimeout(5000) //读取超时时间
    				.build();
    		//设置到此次get请求
    		get.setConfig(config);	
    

    模拟post

    和get方式差不多 就多个设置请求体的参数

    		//以上同get方式
    		HttpPost post=new HttpPost(urlpath);	//新建一个post请求
    		List<BasicNameValuePair> params=new ArrayList<>();	//参数集合
    		params.add(new BasicNameValuePair("参数名", "参数值"));		//装填参数
    		HttpEntity entity=new UrlEncodedFormEntity(params, "UTF-8");	//实例化请求体
    		post.setEntity(entity);	//请求体添加到post
    		//以下同get方式
    

    所谓远程接口访问,其实就是访问网络资源。

    如果把接口的URL,换成网址的URL

    		String urlpath="http://www.ariko.cn:8080/BaseProjectSSM";
    

    出来就是一个html文件
    在这里插入图片描述

    展开全文
  • Java访问远程接口的几种方式

    万次阅读 2018-02-26 17:58:32
    原文地址:Java访问远程接口的几种方式 1.原生JavaAPI获取 package com.util; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io....

    原文地址:Java访问远程接口的几种方式

    1.原生JavaAPI获取

    package com.util;
    
    import java.io.DataOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.UnsupportedEncodingException;
    import java.net.HttpURLConnection;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.net.URLEncoder;
    import java.util.Map;
    
    /**
     * <pre>
     * 功能:httpUrlConnection访问远程接口工具
     * 日期:2015年3月17日 上午11:19:21
     * </pre>
     */
    public class HttpUrlConnectionUtil {
    
        /**
         * <pre>
         * 方法体说明:向远程接口发起请求,返回字符串类型结果
         * @param url 接口地址
         * @param requestMethod 请求方式
         * @param params 传递参数     重点:参数值需要用Base64进行转码
         * @return String 返回结果
         * </pre>
         */
        public static String httpRequestToString(String url, String requestMethod,
                Map<String, String> params){
    
            String result = null;
            try {
                InputStream is = httpRequestToStream(url, requestMethod, params);
                byte[] b = new byte[is.available()];
                is.read(b);
                result = new String(b);
            } catch (IOException e) {
                e.printStackTrace();
            }
            return result;
        }
    
        /**
         * <pre>
         * 方法体说明:向远程接口发起请求,返回字节流类型结果
         * 作者:高会于
         * 日期:2015年3月17日 上午11:20:25
         * @param url 接口地址
         * @param requestMethod 请求方式
         * @param params 传递参数     重点:参数值需要用Base64进行转码
         * @return InputStream 返回结果
         * </pre>
         */
        public static InputStream httpRequestToStream(String url, String requestMethod,
                Map<String, String> params){
    
            InputStream is = null;
            try {
                String parameters = "";
                boolean hasParams = false;
                //将参数集合拼接成特定格式,如name=zhangsan&age=24
                for(String key : params.keySet()){
                    String value = URLEncoder.encode(params.get(key), "UTF-8");
                    parameters += key +"="+ value +"&";
                    hasParams = true;
                }
                if(hasParams){
                    parameters = parameters.substring(0, parameters.length()-1);
                }
    
                //请求方式是否为get
                boolean isGet = "get".equalsIgnoreCase(requestMethod);
                //请求方式是否为post
                boolean isPost = "post".equalsIgnoreCase(requestMethod);
                if(isGet){
                    url += "?"+ parameters;
                }
    
                URL u = new URL(url);
                HttpURLConnection conn = (HttpURLConnection) u.openConnection();
    
                //请求的参数类型(使用restlet框架时,为了兼容框架,必须设置Content-Type为“”空)
                conn.setRequestProperty("Content-Type", "application/octet-stream");
                //conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
                //设置连接超时时间
                conn.setConnectTimeout(50000);  
                //设置读取返回内容超时时间
                conn.setReadTimeout(50000);
                //设置向HttpURLConnection对象中输出,因为post方式将请求参数放在http正文内,因此需要设置为ture,默认false
                if(isPost){
                    conn.setDoOutput(true);
                }
                //设置从HttpURLConnection对象读入,默认为true
                conn.setDoInput(true);
                //设置是否使用缓存,post方式不能使用缓存
                if(isPost){
                    conn.setUseCaches(false);
                }
                //设置请求方式,默认为GET
                conn.setRequestMethod(requestMethod);
    
                //post方式需要将传递的参数输出到conn对象中
                if(isPost){
                    DataOutputStream dos = new DataOutputStream(conn.getOutputStream());
                    dos.writeBytes(parameters);
                    dos.flush();
                    dos.close();
                }
    
                //从HttpURLConnection对象中读取响应的消息
                //执行该语句时才正式发起请求
                is = conn.getInputStream();
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            } catch (MalformedURLException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            return is;
        }
    }

    2.利用httpClient访问获取

    package com.util;
    
    import java.io.IOException;
    import java.io.UnsupportedEncodingException;
    import java.net.URLEncoder;
    import java.util.Map;
    
    import org.apache.http.HttpResponse;
    import org.apache.http.auth.AuthScope;
    import org.apache.http.auth.UsernamePasswordCredentials;
    import org.apache.http.client.CredentialsProvider;
    import org.apache.http.client.methods.HttpDelete;
    import org.apache.http.client.methods.HttpGet;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.client.methods.HttpPut;
    import org.apache.http.client.methods.HttpRequestBase;
    import org.apache.http.client.protocol.HttpClientContext;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.BasicCredentialsProvider;
    import org.apache.http.impl.client.DefaultHttpClient;
    import org.apache.http.params.CoreConnectionPNames;
    import org.apache.http.util.EntityUtils;
    
    
    /**
     * <pre>
     * 功能:httpClient访问远程接口工具类
     * 日期:2015年3月17日 上午11:19:21
     * </pre>
     */
    @SuppressWarnings("deprecation")
    public class HttpClientUtil {
    
        /**
         * <pre>
         * 方法体说明:向远程接口发起请求,返回字符串类型结果
         * @param url 接口地址
         * @param requestMethod 请求类型
         * @param params 传递参数
         * @return String 返回结果
         * </pre>
         */
        public static String httpRequestToString(String url, String requestMethod,
                Map<String, String> params, String ...auth){
            //接口返回结果
            String methodResult = null;
            try {
                String parameters = "";
                boolean hasParams = false;
                //将参数集合拼接成特定格式,如name=zhangsan&age=24
                for(String key : params.keySet()){
                    String value = URLEncoder.encode(params.get(key), "UTF-8");
                    parameters += key +"="+ value +"&";
                    hasParams = true;
                }
                if(hasParams){
                    parameters = parameters.substring(0, parameters.length()-1);
                }
                //是否为GET方式请求
                boolean isGet = "get".equalsIgnoreCase(requestMethod);
                boolean isPost = "post".equalsIgnoreCase(requestMethod);
                boolean isPut = "put".equalsIgnoreCase(requestMethod);
                boolean isDelete = "delete".equalsIgnoreCase(requestMethod);
    
                //创建HttpClient连接对象
                DefaultHttpClient client = new DefaultHttpClient();
                HttpRequestBase method = null;
                if(isGet){
                    url += "?" + parameters;
                    method = new HttpGet(url);
                }else if(isPost){
                    method = new HttpPost(url);
                    HttpPost postMethod = (HttpPost) method;
                    StringEntity entity = new StringEntity(parameters);
                    postMethod.setEntity(entity);
                }else if(isPut){
                    method = new HttpPut(url);
                    HttpPut putMethod = (HttpPut) method;
                    StringEntity entity = new StringEntity(parameters);
                    putMethod.setEntity(entity);
                }else if(isDelete){
                    url += "?" + parameters;
                    method = new HttpDelete(url);
                }
                method.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 6000);
                //设置参数内容类型
                method.addHeader("Content-Type","application/x-www-form-urlencoded");
                //httpClient本地上下文
                HttpClientContext context = null;
                if(!(auth==null || auth.length==0)){
                    String username = auth[0];
                    String password = auth[1];
                    UsernamePasswordCredentials credt = new UsernamePasswordCredentials(username,password);
                    //凭据提供器
                    CredentialsProvider provider = new BasicCredentialsProvider();
                    //凭据的匹配范围
                    provider.setCredentials(AuthScope.ANY, credt);
                    context = HttpClientContext.create();
                    context.setCredentialsProvider(provider);
                }
                //访问接口,返回状态码
                HttpResponse response = client.execute(method, context);
                //返回状态码200,则访问接口成功
                if(response.getStatusLine().getStatusCode()==200){
                    methodResult = EntityUtils.toString(response.getEntity());
                }
                client.close();
            }catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }catch (IOException e) {
                e.printStackTrace();
            }
            return methodResult;
        }
    }
    展开全文
  • Java实现远程接口访问,webservers配置,详细介绍了如何实用webservers实现远程接口访问功能
  • 1. 使用HttpClient 作者:朱梦君
  • JAVA调用远程接口

    千次阅读 2019-12-30 16:11:36
    JAVA调用远程接口 介绍一下JAVA调用远程接口获取数据。一般业务中主要用到的就是get和post的方式。其他的方式,以后用到了,再补充。 啰嗦一下get和post方式不同点.如果只说使用功能,那么下面几句话就够了,如果要...

    JAVA调用远程接口

    介绍一下JAVA调用远程接口获取数据。一般业务中主要用到的就是get和post的方式。其他的方式,以后用到了,再补充。
    啰嗦一下get和post方式不同点.如果只说使用功能,那么下面几句话就够了,如果要深究为什么这样,那么可以参考这篇博客,讲解的清晰易懂:https://www.cnblogs.com/logsharing/p/8448446.html
    Get:将参数放在URL后面,全部信息被暴露不安全,参数编码有限制,URL长度有限制。
    POST:将请求参数通过BODY传送,安全的,且参数编码和长度无限制。

    好了,下面是我用GET和POST调用远程接口的两个例子,注释的很清楚。首先使用CloseHttpClient需要引用jar。

    		<dependency>
    			<groupId>org.apache.httpcomponents</groupId>
    			<artifactId>httpclient</artifactId>
    		</dependency>
    

    Get方式远程请求调用接口

    	@Override
    	public String getSecondPBOC(String applicationNumber) {
    		InputStream is = null;
    		String body = null;
    		StringBuilder res = new StringBuilder();
    		// 实例化CloseableHttpClient
    		CloseableHttpClient client = HttpClients.createDefault();
    		CloseableHttpResponse response = null;
    		try {
    			// 添加URL和请求参数
    			URIBuilder ub = new URIBuilder(secondPBOCURL);
    			ub.setParameter("applicationNumber", applicationNumber);
    			// 使用get方法添加URL
    			HttpGet get = new HttpGet(ub.build());
    			// 设置请求超时时间
    			RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).build();
    			get.setConfig(config);
    			//使用http调用远程,获取相应信息
    			response = client.execute(get);
    			// 获取响应状态码,可根据是否响应正常来判断是否需要进行下一步
    			int statusCode = response.getStatusLine().getStatusCode();
    			// 获取响应实体
    			HttpEntity entity = response.getEntity();
    			// 读取响应内容
    			if (entity != null) {
    				is = entity.getContent();
    				BufferedReader br = new BufferedReader(new InputStreamReader(is, Consts.UTF_8));
    				while ((body = br.readLine()) != null) {
    					res.append(body);
    				}
    			}
    		} catch (Exception e) {
    			log.error(e.getMessage(), e);
    		}
    		return res.toString();
    	}
    

    以下是使用POST方法调用远程接口获取信息的,其中我的请求参数是XML报文的,所以前期先使用dom4j生成了一下请求参数。添加依赖。

    		<dependency>
    			<groupId>dom4j</groupId>
    			<artifactId>dom4j</artifactId>
    		</dependency>
    

    POST方式调用远程接口

    @Override
    	public String getSecondPBOCReport(String applicationNumber, String idNumber, String idType, String chineseName) {
    		//格式化时间,生成渠道代码
    		SimpleDateFormat format=new SimpleDateFormat("YYYYmmDDHHMMSSFFFF");
    		String chnlTxNo=format.format(new Date());
    		//实例化文档
    		Document document = DocumentHelper.createDocument();
    		//添加节点
    		Element service = document.addElement("request");
    		Element head = service.addElement("head");
    		Element body = service.addElement("Proc_Query");
    		//设置节点内容
    		head.addElement("Chnl_Tx_No").setText(chnlTxNo);		
    		head.addElement("Sys_Code").setText(sysCode);
    		head.addElement("Txn_Code").setText(txnCode);
    		body.addElement("User_Name").setText(Base64Util.decodeBase64(userName));
    		body.addElement("User_Password").setText(Base64Util.decodeBase64(userPassword));
    		body.addElement("Application_Number").setText(applicationNumber);
    		body.addElement("Id_Number").setText(idNumber);
    		body.addElement("Id_Type").setText(idType);
    		body.addElement("Chinese_Name").setText(chineseName);
    		body.addElement("Query_reason").setText(queryReason);
    		//生成XML报文
    		log.info("request="+document.asXML());
    		
    		InputStream is = null;
    		String responseBody = null;
    		StringBuilder res = new StringBuilder();
    		//实例化HttpClient
    		CloseableHttpClient client = HttpClients.createDefault();
    		//使用POST方法
    		HttpPost post = new HttpPost(reportURL);
    		//设置httpPost的请求头中的MIME类型为xml
    		post.setHeader("Content-Type", "application/xml");
    		//添加请求body的内容,就是我的请求参数,不再拼接到URL尾部
    		post.setEntity(new StringEntity(document.asXML(),"utf-8"));
    		CloseableHttpResponse response = null;
    		try {
    			//设置信息超时时间
    			RequestConfig config = RequestConfig.custom().setConnectTimeout(5000).build();
    			post.setConfig(config);
    			//调用远程接口,获取返回信息
    			response = client.execute(post);
    			//获取响应实体
    			HttpEntity entity = response.getEntity();
    			//读取响应内容
    			if (entity != null) {
    				is = entity.getContent();
    				BufferedReader br = new BufferedReader(new InputStreamReader(is, Consts.UTF_8));
    				while ((responseBody = br.readLine()) != null) {
    					res.append(responseBody);
    				}
    			}
    		} catch (Exception e) {
    			log.error(e.getMessage(), e);
    		}
    		return res.toString();
    	}
    

    一般调用远程接口这样就可以了。
    可以自己写一个接口来测试调用一下。下面是我用于测试POST方法获取报文的servlet,记下来自己下次测试备用。

    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    			throws ServletException, IOException {
    		// 获取请求参数
    		BufferedReader reader1 = new BufferedReader(new InputStreamReader(request.getInputStream()));
    		String str = "";
    		String reqContent = "";
    		while ((str = reader1.readLine()) != null) {
    			reqContent += str;
    		}
    		// 读取本地文件,返回文件内容
    		File file = new File("D:\\text.html");
    		BufferedReader reader = null;
    		StringBuffer sbf = new StringBuffer();
    		try {
    			InputStreamReader read = new InputStreamReader(new FileInputStream(file), "UTF-8");
    			reader = new BufferedReader(read);
    			String tempStr;
    			while ((tempStr = reader.readLine()) != null) {
    				sbf.append(tempStr);
    			}
    			reader.close();
    		} catch (IOException e) {
    		} finally {
    			if (reader != null) {
    				try {
    					reader.close();
    				} catch (IOException e1) {
    				}
    			}
    		}
    		// 返回post的请求内容
    		response.setCharacterEncoding("UTF-8");
    		response.setHeader("Content-Type", "application/text, charset=UTF-8");
    		PrintWriter out = response.getWriter();
    		out.print(sbf.toString());
    		out.flush();
    		out.close();
    	}
    
    展开全文
  • Java调用远程接口(传递json数据或文件和其它参数)调用接口传递json数据调用接口传递文件及其它参数 调用接口传递json数据 package com.my.test; import com.alibaba.fastjson.JSON; import org.apache....

    HttpClients调用接口传递json数据

    package com.my.test;
    
    import com.alibaba.fastjson.JSON;
    import org.apache.http.HttpEntity;
    import org.apache.http.client.methods.CloseableHttpResponse;
    import org.apache.http.client.methods.HttpPost;
    import org.apache.http.entity.ContentType;
    import org.apache.http.entity.StringEntity;
    import org.apache.http.impl.client.CloseableHttpClient;
    import org.apache.http.impl.client.HttpClients;
    import org.apache.http.util.EntityUtils;
    
    /**
     * @author smile
     * @date 2020/9/30
     * @info 调用接口测试类
     */
    public class MyTest {
    /**
         * 调用接口
         * @param path 远程接口
         * @param obj 发送数据
         * @return 返回结果
         */
        public static String test01(String path,Object obj) throws Exception{
            CloseableHttpClient httpClient = HttpClients.createDefault();
            HttpPost httpPost = new HttpPost(path);
            httpPost.setEntity(new StringEntity(JSON.toJSONString(obj),
                    ContentType.create("application/json", "UTF-8")));
            CloseableHttpResponse execute = httpClient.execute(httpPost);
            HttpEntity entity = execute.getEntity();
            String str = EntityUtils.toString(entity);
            httpPost.clone();
            httpClient.close();
            System.out.println(str);
            return str;
        }
    }
    

    RestTemplate调用接口传递文件及其它参数

    package com.my.test;
    
    import com.alibaba.fastjson.JSON;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.commons.lang3.StringUtils;
    import org.springframework.core.io.ByteArrayResource;
    import org.springframework.http.HttpEntity;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.MediaType;
    import org.springframework.util.LinkedMultiValueMap;
    import org.springframework.util.MultiValueMap;
    import org.springframework.web.client.RestClientResponseException;
    import org.springframework.web.client.RestTemplate;
    import org.springframework.web.multipart.MultipartFile;
    /**
     * @author smile
     * @date 2020/9/30
     * @info 调用接口测试类
     */
    @Slf4j
    public class MyTest {
    
    /**
         * 调用接口
         * @param url 远程接口地址
         * @param body 其它参数
         * @param contentType 请求类型
         * @param httpHeaders 自定义请求头参数
         * @param fileMap 文件参数
         */
        public String doPost(String url,
                             String body,
                             String contentType,
                             Map<String, String> httpHeaders,
                             Map<String, MultipartFile> fileMap) throws Exception {
            //设置请求头
            HttpHeaders headers = new HttpHeaders();
            httpHeaders.forEach(headers::set);
    
            MediaType type = MediaType.parseMediaType(contentType);
            headers.setContentType(type);
    
            MultiValueMap<String, Object> form = new LinkedMultiValueMap<>();
            //设置发送文件
            if (null != fileMap){
                for (Map.Entry<String, MultipartFile> entry : fileMap.entrySet()) {
                    MultipartFile value = entry.getValue();
                    ByteArrayResource is = new ByteArrayResource(value.getBytes()) {
                        @Override
                        public String getFilename() {
                            return value.getOriginalFilename();
                        }
                    };
                    form.set(entry.getKey(), is);
                }
            }
            //设置其它参数
            if (StringUtils.isNotBlank(body)){
                Map<String,String> paramMap = JSON.parseObject(body, Map.class);
                paramMap.forEach(form::set);
            }
            //调用接口并接收返回值
            HttpEntity<MultiValueMap<String, Object>> params = new HttpEntity<>(form, headers);
            RestTemplate restTemplate = new RestTemplate();
           String res = null;
            try {
                res = restTemplate.postForObject(url, params, String.class);
                log.info("接口正常,doResponse=>{}", res);
            } catch (RestClientResponseException e) {
                //异常处理
                log.error("接口异常,doResponseException => ", e);
                res = e.getResponseBodyAsString();
            }
            return res;
        }
    }
    
    

    hutool工具调用远程接口

    		<dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.3.10</version>
            </dependency>
    
    package com.my.test;
    
    import cn.hutool.http.ContentType;
    import cn.hutool.http.HttpRequest;
    import cn.hutool.http.HttpResponse;
    import cn.hutool.json.JSONUtil;
    import com.google.common.collect.Maps;
    
    /**
     * @author smile
     * @date 2020/9/30
     * @info 调用接口测试类
     */
    public class MyTest {
    	
        public static void test03() {
            //get请求
            HttpRequest getRequest = HttpRequest.get("http://...");
            //设置请求类型
            getRequest.contentType(ContentType.JSON.getValue());
            //设置请求头 k=v
            getRequest.header("","");
            //设置请求体 str
            getRequest.body("");
            //发送请求并获得响应
            HttpResponse getResponse = getRequest.execute();
            //响应体
            String getBody = getResponse.body();
    
    
            //post请求
            HttpRequest postRequest = HttpRequest.post("http://...");
            //设置请求类型
            postRequest.contentType(ContentType.JSON.getValue());
            //设置请求头 k=v
            postRequest.header(Maps.newHashMap());
            //设置请求体 str
            String jsonStr = JSONUtil.toJsonStr(Maps.newHashMap());
            postRequest.body(jsonStr);
            //发送请求并获得响应
            HttpResponse postResponse = postRequest.execute();
            //响应体
            String postBody = postResponse.body();
        }
    }
    
    
    
    展开全文
  • Java访问权限控制源代码 1个目标文件 摘要:Java源码,文件操作,权限控制 Java访问权限控制,为Java操作文件、写入文件分配合适的权限,定义写到文件的信息、定义文件,输出到c:/hello.txt、写信息到文件、关闭输出流...
  • java访问远程接口返回json数据接收

    千次阅读 2017-11-30 11:54:28
    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection;
  • 使用java的HttpClient调用远程接口

    千次阅读 2018-04-01 00:45:35
    httpClient比jdk自带的URLConection更加易用和方便,这里介绍一下使用httpClient来调用远程接口。首先导入相关的依赖包:&lt;!-- httpClient --&gt; &lt;dependency&gt; &lt;groupId&...
  • java远程调用接口的原理和范例

    千次阅读 2018-05-21 10:17:27
    Java 远程处理 Java远程方法调用... 创建一个简单的Java分布式远程方法调用程序可以按以下几个步骤操作, 一、定义远程接口: 在 Java 中,远程对象是实现远程接口的实例, 远程接口声明每个要远程调用的方法。在...
  • java调用远程接口并接收返回json串

    千次阅读 2019-04-10 19:07:19
    工具: package cn.com.dzqc.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import org.apache.http.HttpEntity; import org.apache....
  • Java知识体系最强总结(2021版)

    万次阅读 多人点赞 2019-12-18 10:09:56
    本人从事Java开发已多年,平时有记录问题解决方案和总结知识点的习惯,整理了一些有关Java的知识体系,这不是最终版,会不定期的更新。也算是记录自己在从事编程工作的成长足迹,通过博客可以促进博主与阅读者的共同...
  • java代码实现访问网络外部接口并获取数据的工具 工具代码,可以直接copy使用 package com.yqzj.util; import org.apache.log4j.LogManager; import org.apache.log4j.Logger; import java.io....
  • 主要实现的是登录服务器操作服务器的中的文件数据,支持读写的操作。主要使用的方法getProperties是设置配置的login(参数一是访问服务器的配置,参数二是设置读还是写)方法是读写连接服务器
  • sslContext.init(null, tm, new java.security.SecureRandom()); // 从上述SSLContext对象中得到SSLSocketFactory对象 SSLSocketFactory ssf = sslContext.getSocketFactory(); URL url = new URL(request...
  • Java RMI远程接口调用介绍与使用

    千次阅读 2016-06-01 18:59:08
    Java RMI 实现代码动态下载 stub 和 skeleton 的讲解,自己实现一个stub和skeleton程序虽然现在在分布式中RMI已经很少用到,但作为最简单的分布式应用,我们还是稍微了解一下好,这篇文章可能有我理解错误的地方...
  • Java语言特点

    万次阅读 多人点赞 2019-06-30 19:37:45
    对C++来说进行了简化和一定的提高,如:使用接口代替了复杂的多重继承以及取消了指针,还通过实现垃圾自动回收机制,大大简化了程序员的资源释放管理工作。 提供了丰富的类库和API文档,以及第三方开发包工具包,...
  • JAVA 调用API接口 工具(get post )

    千次阅读 2019-06-20 14:23:35
    1.代码如下 package ... import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;...import java.io.PrintWriter;...import java.util.*...
  • java实现调用httpclient接口和方法,包括了get和post传参方式,简单易懂
  • /** * javay访问rest API工具 * * @author zhaohailong * */ public class HttpRestUtil { /** * java调用运程api公共方法 * * @param requestUrl * @param params * @return */ @SuppressWarnings...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 140,526
精华内容 56,210
关键字:

java访问远程接口的类

java 订阅