远程接口调用
调用第三方接口简单测试
import java.io.*;
import java.net.URL;
import java.net.URLConnection;
import java.net.URLDecoder;
import java.net.URLEncoder;
/**
* @类名: RequestUtils
* @说明: TODO
* @作者:
* @时间: 2021/8/3 16:17
* @版本:
*/
public class RequestUtils {
// 对URL encodeData 进行编码
public static String enCode(String code){
String encodeData = null;
try {
encodeData = URLEncoder.encode(code, "UTF-8")
.replaceAll("\\+", "%20")
.replaceAll("\\!", "%21")
.replaceAll("\\'", "%27")
.replaceAll("\\(", "%28")
.replaceAll("\\)", "%29")
.replaceAll("\\~", "%7E");
} catch (
UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(code+":"+encodeData); // 结果为:https%3A%2F%2Fwww.baidu.com%2F
return encodeData;
}
// 对URL String 进行解码
public static String enCodej(String code){
// 对URL进行解码
String decodeData = null;
try {
decodeData = URLDecoder.decode(code, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(decodeData);
return decodeData;
}
/*
* @名称:远程发送POST请求
* @时间:2021/8/3 16:25
* @参数: 请求路径、 参数 参数可为null 例:&a=11
* @返回:String
**/
public static String requestPost(String url,String value){
//请求
OutputStreamWriter out = null ;
BufferedReader in = null;
StringBuilder result = new StringBuilder();
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();
//设置通用的请求头属性
conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
// 发送POST请求必须设置如下两行 否则会抛异常(java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true))
conn.setDoOutput(true);
conn.setDoInput(true);
//获取URLConnection对象对应的输出流并开始发送参数
out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
//添加参数
out.write(value);
out.flush();
in = new BufferedReader(new InputStreamReader(conn.getInputStream(),"UTF-8"));
String line;
while ((line = in.readLine()) != null) {
result.append(line);
}
} catch (Exception e) {
e.printStackTrace();
}finally {// 使用finally块来关闭输出流、输入流
try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
System.out.println(result.toString());
return result.toString();
}
public static void main(String[] args) {
String code = enCode("摩羯座");
//String url = "http://web.juhe.cn:8080/constellation/getAll?consName=%E5%8F%8C%E9%B1%BC%E5%BA%A7&type=today";
String url = "http://web.juhe.cn:8080/constellation/getAll?consName="+code+"&type=today";
String url2 = "http://web.juhe.cn:8080/constellation/getAll?consName=%E5%8F%8C%E9%B1%BC%E5%BA%A7&type=today";
String url3 = "http://web.juhe.cn:8080/constellation/getAll?consName=%E5%8F%8C%E9%B1%BC%E5%BA%A7&type=today&key=6ac43fb03010950ff20a391c2395f8d0";
requestPost(url,"key=6ac43fb03010950ff20a391c2395f8d0");
requestPost(url2,"");
requestPost(url3,"");
}
}
结果
第三方免费API申请
还没有评论,来说两句吧...