-
java以put请求方式调用接口
2016-08-26 09:35:37server return http response code :405 for url 这个怎么解决,调用接口规定以put方式 -
java 调用后台接口demo
2020-02-19 17:37:02public static void main( String[] args ) { Map map = new HashMap<... map.put("username", "test1"); map.put("password", "888888"); String url = "http://10.0.0.32:8098/dataExchang...public static void main( String[] args ) { Map map = new HashMap<>(); map.put("username", "test1"); map.put("password", "888888"); String url = "http://10.0.0.32:8098/dataExchange/login"; String result = HttpUtil.doPost(url, map); System.out.println(result); String msg = "隐患数据备份成功!"; } /** * @文件名称: HttpUtil.java * @描述: TODO * @版本:V1.0 */ package com.zhjt.share.config; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.URI; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.Iterator; import java.util.List; import java.util.Map; import org.apache.commons.lang3.StringUtils; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.NameValuePair; import org.apache.http.client.HttpClient; import org.apache.http.client.entity.UrlEncodedFormEntity; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.message.BasicNameValuePair; import org.apache.http.protocol.HTTP; import org.apache.http.util.EntityUtils; /** * @类功能说明: 封装的http的doPost()和doGet()方法 * 需要依赖的jar包: * commons-lang3-3.4.jar * commons-logging-1.2.jar * httpclient-4.3.5.jar * httpcore-4.4.1.jar * log4j-1.2.17.jar * @版本:V1.0 */ public class HttpUtil { // private static Logger logger = Logger.getLogger(HttpUtil.class); /** * 方法功能说明: http的doGet请求 * @参数: @param url * @参数: @param map * @参数: @return * @return String * @throws */ public static String doGet(String url,Map map) { String params = HttpUtil.formatUrlMap(map, false, false); //拼接成的带参数的url url = url+"?"+params; try { HttpClient client = new DefaultHttpClient(); //发送get请求 HttpGet request = new HttpGet(url); HttpResponse response = client.execute(request); /**请求发送成功,并得到响应**/ int s =response.getStatusLine().getStatusCode(); if (response.getStatusLine().getStatusCode() == HttpStatus.SC_OK) { /**读取服务器返回过来的json字符串数据**/ String strResult = EntityUtils.toString(response.getEntity()); return strResult; } } catch (IOException e) { // logger.error("HttpUtil.doGet():出错了",e); } return null; } /** * post请求(用于key-value格式的参数) * @param url * @param params * @return */ public static String doPost(String url, Map params){ BufferedReader in = null; try { // 定义HttpClient HttpClient client = new DefaultHttpClient(); // 实例化HTTP方法 HttpPost request = new HttpPost(); request.setURI(new URI(url)); //设置参数 List<NameValuePair> nvps = new ArrayList<NameValuePair>(); for (Iterator iter = params.keySet().iterator(); iter.hasNext();) { String name = (String) iter.next(); String value = String.valueOf(params.get(name)); nvps.add(new BasicNameValuePair(name, value)); //System.out.println(name +"-"+value); } request.setEntity(new UrlEncodedFormEntity(nvps,HTTP.UTF_8)); HttpResponse response = client.execute(request); int code = response.getStatusLine().getStatusCode(); if(code == 200){ //请求成功 in = new BufferedReader(new InputStreamReader(response.getEntity() .getContent(),"utf-8")); StringBuffer sb = new StringBuffer(""); String line = ""; String NL = System.getProperty("line.separator"); while ((line = in.readLine()) != null) { sb.append(line + NL); } in.close(); return sb.toString(); } else{ // // logger.error("HttpUtil.doPost():状态码:"+ code); return null; } } catch(Exception e){ // logger.error("HttpUtil.doPost():出错了",e); return null; } } /** * * 方法用途: 对所有传入参数按照字段名的Unicode码从小到大排序(字典序),并且生成url参数串<br> * 实现步骤: <br> * * @param paraMap 要排序的Map对象 * @param urlEncode 是否需要URLENCODE * @param keyToLower 是否需要将Key转换为全小写 * true:key转化成小写,false:不转化 * @return */ public static String formatUrlMap(Map<String, String> paraMap, boolean urlEncode, boolean keyToLower) { String buff = ""; Map<String, String> tmpMap = paraMap; try { List<Map.Entry<String, String>> infoIds = new ArrayList<Map.Entry<String, String>>(tmpMap.entrySet()); // 对所有传入参数按照字段名的 ASCII 码从小到大排序(字典序) Collections.sort(infoIds, new Comparator<Map.Entry<String, String>>() { @Override public int compare(Map.Entry<String, String> o1, Map.Entry<String, String> o2) { return (o1.getKey()).toString().compareTo(o2.getKey()); } }); // 构造URL 键值对的格式 StringBuilder buf = new StringBuilder(); for (Map.Entry<String, String> item : infoIds) { //StringUtils类需要依赖commons-lang3.jar包 if (StringUtils.isNotBlank(item.getKey())) { String key = item.getKey(); String val = item.getValue(); if (urlEncode) { val = URLEncoder.encode(val, "utf-8"); } if (keyToLower) { buf.append(key.toLowerCase() + "=" + val); } else { buf.append(key + "=" + val); } buf.append("&"); } } buff = buf.toString(); if (buff.isEmpty() == false) { buff = buff.substring(0, buff.length() - 1); } } catch (Exception e) { // logger.error("HttpUtil.formatUrlMap():出错了",e); return null; } return buff; } }
-
java调用http接口, get post请求
2020-01-16 10:13:56言归正传,怎么通过java调用别人写的接口了?我们在网上看到大部分都是有点麻烦的,其实我们可以通过RestTemplate 进行开发,常用的http基本请求方式都有 Get,Post ,Put ,Delete,等等 我这里的是post请求,参数中...最近公司派我出差与乙方公司对接接口,开发了将近大半年的App,突然有冲突,所以整合一下,此处省略十万八千字......
言归正传,怎么通过java调用别人写的接口了?我们在网上看到大部分都是有点麻烦的,其实我们可以通过 RestTemplate
进行开发,常用的http基本请求方式都有 Get,Post ,Put ,Delete,等等
我这里的是post请求,参数中含有 list 的,map传参
首先我们创建一个配置类
package com.japhet.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.client.RestTemplate; @Configuration(value = "config2") public class Config { @Bean public RestTemplate restTemplate(){ return new RestTemplate(); } }
@Resource private RestTemplate restTemplate; // 核心 public String doPost(String url,Map<String, Object> params) throws Exception { JSONObject jsonObject = restTemplate.postForObject(url,params,JSONObject.class); return jsonObject.toString(); } //调用 public static void main(String[] args) { if(true){//自己业务 for(int i=0;i<10;i++){ stringList.add("参数"+i); } }else{ stringList.add("参数1"); } JSONArray jsonArray = JSONArray.fromArray(new ArrayList[]{stringList}); String listJson = jsonArray.toString(); map.put("xxx", "参数1"); map.put("xxx", listJson); map.put("xxx", "参数1"); map.put("xxx", "参数1"); map.put("xxx", "参数1"); try{ String result = doPost("接口路径",map); }catch (Exception e){ e.printStackTrace(); } }
get 请求 后续更新.....
-
java rest_Java调用Rest接口一次性学懂
2021-02-12 09:17:32REST式的Web Service使用HTTP里的方法:GET, POST, DELETE, PUT。你不需要使用URL或请求的内容来指定这个方法。REST式的Web Service使用URL来指明你将要操作什么对象。REST式的Web Service使用HTTP状态码作为...REST式的Web Service使用HTTP里的方法:GET, POST, DELETE, PUT。你不需要使用URL或请求的内容来指定这个方法。
REST式的Web Service使用URL来指明你将要操作什么对象。
REST式的Web Service使用HTTP状态码作为返回值。
REST式的Web Service调用产生的HTTP请求内容只是用于服务数据——不是用来指明调用方法,目标对象或返回值的。
使用REST方法来开发Web Service的关键点是利用HTTP协议的简单性,而不是去扩展这个协议。你的Web Service调用最终应该是非常的简单而且非常的易于理解。
接收和返回的类型
MediaType指向的类型参考地址:
http://docs.oracle.com/javaee/6/api/javax/ws/rs/core/MediaType.html
常用类型:
MediaType.TEXT_PLAIN:无格式文本。
MediaType.TEXT_XML:”text/xml” 忽略xml头所指定的片吗格式而采用us-ascii编码。
MediaType.APPLICATION_XML:”application/xml” 根据xml头指定的编码格式来编码。
MediaType.APPLICATION_JSON:”application/json” json格式。
Rest所需jar包
下载地址:http://download.csdn.net/download/u012524687/7993863
此地址为CSDN整合过得jar包解压可用。
所需jar包截图:
web.xml配置
restDemo
com.sun.jersey.spi.container.servlet.ServletContainer
com.sun.jersey.config.property.packages
rest.service//包名
1//优先级
restDemo
/rest/*
//配置访问地址,如:http://localhost:8080/RestDemo/rest/RestService/123
编写中所用标注
JAX-RS是一套用Java实现rest服务的规范,使Java程序员可以使用一套固定的接口来开发rest应用,避免了依赖于第三方框架。同时,JAX-RS使用POJO编程模型和基于标注的配置,并集成了JAXB,从而可以有效缩短REST应用的开发周期。
JAX-RS提供了一些标注将一个资源类,一个POJOJava类,封装为Web资源。这些标注包括以下:
1、@Path:标注资源类或方法的相对路径。Path的参数有三种:
1.1 固定值
1.2 纯正则表达式
1.3 固定值和正则表达式的混合体
2、@GET,@PUT,@POST,@DELETE:标注方法是用的HTTP请求类型。
2.1 @GET:提供查询方法,所有的参数均在URL路径中,只能传输一个或者多个字符串无法传输对象。
2.2 @POST:提供新增方法,参数可以存在URL路径中,也可以存在BODY中。如传输文本格式的参数,使用String类型或者基本数据类型;如传输JSON格式的参数,使用map、list或者对象。
2.3 @PUT:提供修改方法。
2.4 @DELETE:提供删除方法。
3、@Produces,@Consumes:标注MIME媒体类型。
3.1 @Produces:标注返回的MIME媒体类型。
@Produces(“text/plain;charset=utf-8”):处理返回中文乱码。(不设置的话默认为这个)
@Produces(MediaType.TEXT_XML):返回的类型为”text/xml”,忽略xml头所指定编码格式而默认采用us-ascii编码。
3.2 @Consumes:标注可接受的MIME媒体类型。
@Consumes(MediaType.TEXT_PLAIN):可接受的类型为”text/plain”,无格式文本。
4、@PathParam,@QueryParam,@HeaderParam,@CookieParam,
@MatrixParam,@FormParam:分别标注方法的参数来自于HTTP请求的不同位置。
4.1 @PathParam:提取URL的路径。
例如:URL地址为:
http://localhost:8080/RestDemo/rest/RestService/123
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path(“{id}”)
@Produces(“text/plain;charset=utf-8”)
public String getPatnParam(@PathParam(value=”id”) int id){
return “url中的参数为:”+id;
}
}
4.2 @QueryParam:来自于URL的查询参数。
例如:URL地址为:
http://localhost:8080/RestDemo/rest/RestService/getQueryParam?id=12
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path(“getQueryParam”)
@Produces(“text/plain;charset=utf-8”)
public String getQueryParam(@QueryParam(value=”id”) String id){
return “请求信息为:”+id;
}
}
4.3 @HeaderParam:来自于HTTP的请求头消息。
例如:URL地址为:
http://localhost:8080/RestDemo/rest/RestService/getHeaderParam
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path("/getHeaderParam")
public String getHeaderParam(@HeaderParam(value="host")
String host ){
return "请求头消息:" + host;
}
}
4.4 @MatrixParam:GET方式请求时获取路径中与Path正则表达式多出不一致的参数。
例如:URL地址为:
http://localhost:8080/RestDemo/rest/RestService/test--context;color=balck
请求模板为:
@path(“RestService”)
public Class RestService{
@GET
@Path(“{model}--{year}”)
@Produces(“text/plain;charset=utf-8”)
public String getMatrixParam(@MatrixParam(value=”color”) String color,
@PathParam(value=”model”) String model,
@PathParam(value=”year”) String year ){
return “参数为:color:”+ color + “;model:”+ model+”;year:”+year;
}
}
4.5 @FormParam:其功能是可以和前端的HTML绑定
例子:
JAX-RS @FormParam Testing
Name :
Age :
请求模板为:
@Path(“RestService”)
public Class RestService{
@POST //要和HTML中的对应
@Path(“/add”)
@Produces(“text/plain;charset=utf-8”)
public String add(@FormParam(”name”) String name
@FormParam(”age”) int age){
return “Name=”+name+”;Age=”+age;
}
}
-
java api跨域_java调用接口(跨域调用函数)
2021-02-26 18:47:27一个工程中的主要方法:public Map ky(Map map){String url = "http://localhost:8080/api/json/ky.action";...try{if(map.size() == 0){reMap.put("outResult", "0");reMap.put("outResultReason", "无数...一个工程中的主要方法:
public Map ky(Map map){
String url = "http://localhost:8080/api/json/ky.action";
Map reMap = new HashMap();
try{
if(map.size() == 0){
reMap.put("outResult", "0");
reMap.put("outResultReason", "无数据需要发送");
return reMap;
}
map.put("typeId", "06");
ArrayList list = (ArrayList)dao.queryMapList("billVerify.getLinkUrl",map);
/*
if(list == null || list.size() == 0){
reMap.put("outResult", "1");
reMap.put("outResultReason", "不调用物流验证接口");
return reMap;
}else{
HashMap linkMap = (HashMap)list.get(0);
url = linkMap.get("linkUrl").toString();
}
*/
HttpClient client = new HttpClient();
//返回结果集
JSONObject resJson = new JSONObject();
PostMethod postMethod = new PostMethod(url);
StringPart strPart1 = new StringPart("param", URLEncoder.encode(JSONObject.fromObject(map).toString(), "utf-8"));
client.getParams().setSoTimeout(15000);
Part[] parts = { strPart1};
//对于MIME类型的请求,httpclient建议全用MulitPartRequestEntity进行包装
MultipartRequestEntity mre = new MultipartRequestEntity(parts, postMethod.getParams());
postMethod.setRequestEntity(mre);
//执行请求,返回状态码
int status = client.executeMethod(postMethod);
if (status == HttpStatus.SC_OK) {
String result = postMethod.getResponseBodyAsString();
resJson = JSONObject.fromObject(result);
if("1".equals(resJson.get("outResult"))){
reMap.put("outResult", resJson.get("outResult"));
reMap.put("outResultReason", resJson.get("outResultReason"));
}else{
reMap.put("outResult", resJson.get("outResult"));
reMap.put("outResultReason", resJson.get("outResultReason"));
}
} else {
System.out.println("接口请求失败。");
reMap.put("outResult", "0");
reMap.put("outResultReason", "请求失败。");
}
}catch(Exception e){
e.printStackTrace();
reMap.put("outResult", "0");
reMap.put("outResultReason", "请求超时。");
}
return reMap;
}
另一个工程中的主要方法:
public String ky(){
Map map = new HashMap();
try {
jsonParam = URLDecoder.decode(param ,"UTF-8");
} catch (Exception e1) {
e1.printStackTrace();
}
if(jsonParam==null){
map.put("outResult", "0");
map.put("outResultReason", "参数:param 为空!");
result = JSONObject.fromObject(map);
return SUCCESS;
}
map = jsonService.ky(jsonParam);
result = JSONObject.fromObject(map);
return SUCCESS;
}
-
java putconstraint_java中rest接口不支持put方法
2021-03-14 14:23:02这几日在做项目过程中遇到一个问题,系统中调用rest接口的put方法去做更新数据库操作时前台页面提示403 Forbidden,后台日志报Request method 'GET' not supported。纠结了很久终于解决,根源在于rest默认的是不支持... -
Koa2调用java接口_入门koa2接口开发
2021-03-17 11:59:34入门koa2接口开发依赖安装安装koa2安装koa-routerkoa-router 提供了 .get、.post、.put 和 .del 接口来处理各种请求代码分层这里按照MVC的思想来组织代码结构:server├── app.js├── controller├── ... -
java 系统间接口调用
2018-07-02 16:42:28public JSONObject openUFCAccount(String name) { String url = getUfcBeginUrl() + "/interface/test.do"; //添加参数 HashMap parmMap = new HashMap(); parmMap.put("name", name);... -
java中rest接口不支持put方法
2019-09-22 23:17:46这几日在做项目过程中遇到一个问题,系统中调用rest接口的put方法去做更新数据库操作时前台页面提示403 Forbidden,后台日志报Request method 'GET' not supported。纠结了很久终于解决,根源在于rest默认的是不支持... -
java中使用HttpClient调用接口
2020-10-09 18:46:22java中使用HttpClient调用接口 1.HttpClient 提供的主要的功能 (1)实现了所有 HTTP 的方法(GET,POST,PUT,DELETE 等) (2)支持自动转向 (3)支持 HTTPS 协议 (4)支持代理服务器等 直接言归正传了!!!!上... -
java调用存储过程 oracle_java调用oracle存储过程
2021-03-03 12:20:22java调用oracle存储过程java代码Map param = new HashMap();param.put("in_str", "1,2,3,4");//入参wxMapper.execProcedure(param);//调用存储过程,参数以map的形式传递String lsn = param.get("out_str");//出参... -
Java后端Json格式调用接口
2021-02-25 15:30:27传参调用: String requestUrl = "http://127.0.0.1:21006/sysSms/queryReceiveMessage"; String requestMethod = "post"; JSONObject jsonObject = new JSONObject(); jsonObject.put("pageNo", 1); ... -
java后台调用别人开发接口并接收返回数据
2019-05-15 11:05:53/* *第一种方式post请求 */ JSONObject result = new JSONObject(); JSONObject jsonss = new JSONObject(); jsons.put("key","value");... URL url = new URL("这里写你需要调用接口的地址"); //打开和url之间的连... -
java post调用api接口测试_[分享] 使用ApiPost测试接口时需要先登录的接口怎么办(基于Cookie)?...
2021-02-28 07:38:57在后台在开发、调试接口时,常常会遇到需要登陆才能请求的接口。比如:获取登陆用户的收藏列表,此时,我们就需要模拟登陆状态进行接口...它支持模拟POST、GET、PUT等常见请求,是后台接口开发者或前端、接口测试人... -
java 接口发送请求_Java-简单的 发送http get/post请求 调用接口/方法
2021-03-12 22:38:51请求参数srequestUrl 是你要发送的接口参数用map 存起来sRet 是返回值 如果发送的接口有的话就写然后调用 NetUtils.requset请求 (接口,参数,get/post(选择一种发送方式))String sRequestUrl =... -
微信小程序调用java接口解析纯文本_原创:微信小程序调用PHP后台接口,解析纯html文本...
2021-03-15 15:45:37---效果图片预览---1、微信js动态传参:wx.request({url:'https://m.****.com/index.php/Home/Xiaoxxf/activity_detail?a_id='+options.id,//含富文本htmldata:{is_detail:1},method:'GET',//OPTIONS,GET,HEAD,POST,PUT,... -
java rest test_testREST 测试 接口调用包括put、get、delete、post四种方式的 Java Develop 265万源代码...
2021-02-26 16:28:59文件名称: testREST下载 收藏√ [5 4 3 2 1]开发工具: Java文件大小: 14131 KB上传时间: 2016-10-08下载次数: 0提 供 者: 胡东梅详细说明:测试rest接口调用包括put、get、delete、post四种方式的调用-test rest文件... -
java调用阿里云的短信接口 本地能发送短信,阿里云linux服务器却发不了,直到超时
2020-06-05 17:54:45```java ... at com.aliyuncs.DefaultAcsClient.doRealAction(DefaultAcsClient.java:343) at com.aliyuncs.DefaultAcsClient.doAction(DefaultAcsClient.java:273) at com.aliyuncs.DefaultAcsClient.doAction... -
java调用oracle存储过程
2015-07-30 18:34:12java调用oracle存储过程 java代码 Map param = new HashMap(); param.put("in_str", "1,2,3,4");//入参 wxMapper.execProcedure(param);//调用存储过程,参数以map的形式传递 String lsn = param.get("out_str")... -
java中调用第三方接口的三种方式
2020-07-22 11:41:28HttpClient public class HttpClientUtil { public static String get(String url){ //创建请求方式 HttpGet httpGet=new HttpGet... ... // HttpPut; // HttpDelete //创建客户端对象 HttpClient client= HttpCl -
java RestTemplate put和delete请求无返回值问题解决
2019-08-28 16:21:20最近的项目中涉及到使用RestTemplate 调用请求方式为delete和put的接口,但是RestTemplate提供的delete()和put()方法都没有返回值,但是我要调用的接口是有返回值的,网上的资料很多都是写的调用exchange()方法来... -
关于feign接口调用其他微服务中参数是集合对象(List<Java对象>)且请求方式是PUT或者POST方式的解决办法
2021-01-29 09:45:24首先,如果传输的是集合对象,一般的不是PUT或者POST请求都是可以用@RequestParam("…")的形式写在接口的新参中,比如 @GetMapping("/find/sec/consume/product/category") public ResponseEntity<List<... -
java swagger后端接口测试
2020-09-19 21:09:35在写项目的时候接口的请求方式有各种,get,post,delete,put. get请求还好测试,直接在浏览器输入url就可,但对于post,等其他方式的请求,单独浏览器就显得乏力了。 测试接口的工具很多,postman,postwoman就是... -
关于HTTP调用接口的四种方式(post,get,delete,put)
2017-11-29 11:37:27import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; -
java Rest 接口
2018-03-21 09:22:31 REST是一套用来创建Web Service的方法。 REST式的Web Service的主旨是让事情尽量的简单化。... REST式的Web Service调用产生的HTTP请求内容只是用于服务数据——不是用来指明调用方法,目标对象或返回值的。 -
调用webService接口将大量数据分批上传,在Java中实现分批会造成内存崩盘吗?比如说这个代码。———
2019-10-21 16:52:45jsonObject.put(columnLabel, value); } array.add(jsonObject); }else { for (int i = 1; i ; i++) { String columnLabel = reMetaData.getColumnLabel(i); String value = ...