概述
HttpClient向接口发送请求,无返回值,发现接口未接收到所传参数的值,因为不是Java写的接口导致。
Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
emmmm....
不解释太多了,直接转载别人用的方法吧,看不懂的可以直接复制我用的方法和调用。
https://blog.csdn.net/qicui2835/article/details/80945749
常规的get请求可以直接拼在url中的,这样可以直接传参数并成功接收。
但在post请求是必须要用BasicNameValuePair。
以下是我写的HttpClient类方法及调用:
public static String sendHttpRequestPost(String url,List<NameValuePair> pairs, String contentType)throws Exception {
CloseableHttpClient client = HttpClients.createDefault();
String respContent = null;
HttpPost httpPost = new HttpPost(url);
httpPost.setHeader("Content-Type", contentType);
StringEntity entity = new StringEntity(parameter,ContentType.APPLICATION_FORM_URLENCODED);
entity.setContentEncoding("UTF-8");
entity.setContentType("application/x-www.form-urlencoded");
httpPost.setEntity(entity);
httpPost.setEntity(new UrlEncodedFormEntity(pairs, HTTP.UTF_8));
try {
CloseableHttpResponse response = client.execute(httpPost);
if (response.getStatusLine().getStatusCode() == 200) {
HttpEntity he = response.getEntity();
respContent = EntityUtils.toString(he, "UTF-8");
}
} catch (Exception ex) {
ex.printStackTrace();
}
return respContent;
}
调用:
List<NameValuePair> pairs = new ArrayList<NameValuePair>();
NameValuePair pair = new BasicNameValuePair("userName","admin");
pairs.add(pair);
NameValuePair pair = new BasicNameValuePair("password","123");
pairs.add(pair);
HttpClient.sendHttpRequestPost("http://xxx.xxx.xx.xx:xxxx/xxxx",pairs,"application/x-www-form-urlencoded");
最新发现的另外一种方法特意加上去的哦 Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
RestTemplate restTemplate = new RestTemplate();
String url = "http://xxx.xxx.xx.xx:xxxx/xxxx";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_FORM_URLENCODED);
MultiValueMap<String, String> map= new LinkedMultiValueMap<>();
map.add("deviceId", "all");
HttpEntity<MultiValueMap<String, String>> request = new HttpEntity<>(map, headers);
ResponseEntity<String> response = restTemplate.postForEntity( url, request , String.class );
System.out.println(response.getBody());
测试过无问题,详细内容请看https://www.cnblogs.com/javazhiyin/p/9851775.html
最后
以上就是落寞花生为你收集整理的.net接口使用java httpClient请求参数 使用RestTemplate的全部内容,希望文章能够帮你解决.net接口使用java httpClient请求参数 使用RestTemplate所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复