restful接口的调用

该博客展示了如何使用GET和POST方式调用RESTful接口。对于GET方式,通过HttpURLConnection打开连接,设置请求头并读取响应。而对于POST方式,使用HttpClient创建POST方法,设置请求体和请求头,然后执行并解析响应。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.get方式
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

import org.apache.commons.io.IOUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import com.alibaba.fastjson.JSONObject;
public class MapService implements IMapService {
 //日志记录
 private static final Logger LOG = LoggerFactory.getLogger(MapService.class);
 
 //FOSS获取长地址url
 private String shortAdrUrl;

 public String getShortAdrUrl() {
  return shortAdrUrl;
 }
 public void setShortAdrUrl(String shortAdrUrl) {
  this.shortAdrUrl = shortAdrUrl;
 }


 /**
  *
   * @作者:fei
   * @功能:获取短地址对应的长地址
   * @时间:2014年11月5日下午8:14:18
   * @param:
   * @return:
  */
 @Override
 public String transAdr(String shortUrl) {
  String urlPath = shortAdrUrl + shortUrl;
  String longUrl = "";
 
  URL url;
  try {
   url = new URL(urlPath);
   
   HttpURLConnection httpConn = ((HttpURLConnection) url.openConnection());
   httpConn.addRequestProperty("ContenType","application/json;charset=utf-8");
   InputStream input = httpConn.getInputStream();
   
   String jsonString = IOUtils.toString(input);
   JSONObject jsonObj = JSONObject.parseObject(jsonString);
   
   //获取的状态, 成功为true,失败为false
   JSONObject jsonObj2 = jsonObj.getJSONObject("OrgGisUrlInfoDto");
   boolean state = jsonObj2.getBoolean("state");
   //成功获取长地址
   if(state) {
    longUrl = jsonObj2.get("depCoodinate").toString();
    LOG.info("短地址信息为:" + shortUrl + ",对应的长地址信息为:" + longUrl);
   }
   
  } catch (MalformedURLException e) {
   e.printStackTrace();
   LOG.error(e.getMessage());
  } catch (IOException e) {
   e.printStackTrace();
   LOG.error(e.getMessage());
  }
  return longUrl;
 }

}

-------------------------------------------------------

2、post方式

import java.io.IOException;  
import java.util.Map;  

import org.apache.commons.httpclient.HttpClient;  
import org.apache.commons.httpclient.methods.PostMethod;  
import org.apache.commons.httpclient.methods.RequestEntity;  
import org.apache.commons.httpclient.methods.StringRequestEntity;  
import org.codehaus.jackson.map.ObjectMapper;  

import com.alibaba.fastjson.JSONObject;  

public class TestFossUrl {  

/**  
* MAP类型数组转换成NameValuePair类型  
*  
* @param properties  
* MAP类型数组  
* @return NameValuePair类型数组  
*   http://192.168.17.141:8680/esb2/rs/ESB_CRM2ESB_ORDER_STATE"  
*   http://10.224.65.123:8089/webWsPro/webservice/ows/app/changed;  
*/  
private static final String URI = " http://10.224.70.124:8080/bse-baseinfo-web/services/gisUrl/queryLongUrlByShortUrl";  

public static void main(String[] args) throws IOException {  
HttpClient httpClient = new HttpClient();  
// 设置编码格式  
httpClient.getParams().setContentCharset("UTF-8");  
// 构造PostMethod的实例  
PostMethod postMethod = new PostMethod(URI);  
try {  
JSONObject jsonObj = new JSONObject();  
jsonObj.put("shortUrl", "llllll");  

String js = jsonObj.toString();  
RequestEntity entity = new StringRequestEntity(js,  
"application/json", "UTF-8");  
postMethod.setRequestEntity(entity);  
postMethod.addRequestHeader("Content-Type",  
"application/json;charset=UTF-8");  
// 执行postMethod  
int statusCode = httpClient.executeMethod(postMethod);  
if (statusCode != 200) {  
// LOGGER.info("ESBADDRESS_REQUEST_ERROR_URL_CANNOTFOUND"+propertyFactory.getEsbRsUrl());  
}  
String responseBody = postMethod.getResponseBodyAsString();  
Map<String, Object> returnMap = new ObjectMapper().readValue(  
responseBody, Map.class);  
System.out.println(responseBody);  

} catch (Exception e) {  
e.printStackTrace();  
} finally {  
postMethod.releaseConnection();  
}  

}  

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值