java访问api

java访问get、post接口

package com.yiyu.api;

// import com.alibaba.druid.util.StringUtils;
import net.sf.json.JSONObject;

import java.io.*;
import java.net.*;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

public class testApi {
    
    
    public static void main(String[] args) {
    
    
        testGet();
        testPost();
    }

    public static void testPost(){
    
    
        Map<String,String> paramsMap = new HashMap<>();
        paramsMap.put("name","小明");
        paramsMap.put("sex","0");
        Map<String,String> resultMap = new HashMap<>();
        try {
    
    
            URL url = new URL("post url api(假装这是一个url)");
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("post");
            conn.setDoOutput(true);//表示向服务器写数据
            conn.setDoInput(true);//表示从服务器获取数据
            conn.setUseCaches(false);//是否使用缓存
            conn.setInstanceFollowRedirects(true);//是否应该自动执行 http 重定向
            conn.setRequestProperty("Content-Type", "application/json");
            conn.connect();
            //包装成json数据
            DataOutputStream out = new DataOutputStream(conn.getOutputStream());
            out.writeBytes(JSONObject.fromObject(paramsMap.toString()).toString());
            out.flush();
            out.close();
            //读取响应
            BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream()));
            String tempStr=null,resultStr="";
            while ((tempStr = bf.readLine()) != null){
    
    
                resultStr += new String(tempStr.getBytes(),"utf-8");
            }
            if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
    
    
                JSONObject resultJson = JSONObject.fromObject(resultStr);
                if(resultJson.get("success").equals(true)){
    
    
                    Iterator<String> iterator = resultJson.keys();
                    while (iterator.hasNext()){
    
    
                        String key = iterator.next();
                        resultMap.put(key,resultJson.get(key).toString());
                    }
                    System.out.println("接口调用成功:" + resultMap.toString());
                }else {
    
    
                    System.out.println("接口调用失败:" + resultStr);
                }
            }else {
    
    
                System.out.println("接口调用失败:" + resultStr);
            }

        } catch (Exception e) {
    
    
            e.printStackTrace();
        }

    }

    public static void testGet(){
    
    
        Map<String,String> dataMap = new HashMap<>();
        try {
    
    
            //使用url编码,防止中文传递乱码   解码:URLDecoder.decode( URL, "UTF-8" )
            String urlStr = "https://qqlykm.cn/api/free/weather/get?key=&city=" + URLEncoder.encode( "济南", "UTF-8" );
            URL url = new URL(urlStr);
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            conn.setRequestMethod("GET");
            conn.setUseCaches(false);
            conn.setConnectTimeout(5000);
            conn.setRequestProperty("charset","utf-8");
            conn.setRequestProperty("content-type", "application/json");
            conn.setRequestProperty("Accept", "application/json");
            conn.setRequestProperty("User-Agent", "Mozilla/4.76");//防止?403
            conn.setDoOutput(false);
            conn.connect();

            BufferedReader bf = new BufferedReader(new InputStreamReader(conn.getInputStream(),"utf-8"));
            String tempStr = null,resultString="";
            while ((tempStr = bf.readLine()) != null){
    
    
                resultString += tempStr;
            }
            bf.close();

            if(conn.getResponseCode() == HttpURLConnection.HTTP_OK){
    
    
                JSONObject resultJson = JSONObject.fromObject(resultString);
                System.out.println(resultJson);
                if(resultJson.get("success").equals(true)){
    
    
                    Iterator<String> iterator = resultJson.keys();
                    while (iterator.hasNext()){
    
    
                        String key = iterator.next();
                        dataMap.put(key,resultJson.getString(key));
                    }
                }else {
    
    
                    System.out.println("接口调用失败:" + resultJson);
                }
            }else {
    
    
                System.out.println("url访问失败:" + resultString);
            }
            conn.disconnect();
        } catch (Exception e) {
    
    
            e.printStackTrace();
        }
        System.out.println("api调用结果:" + dataMap);
    }
}

猜你喜欢

转载自blog.csdn.net/weixin_41544662/article/details/127213117