Heim  >  Artikel  >  Java  >  So rufen Sie die Schnittstelle der anderen Partei in Java auf

So rufen Sie die Schnittstelle der anderen Partei in Java auf

王林
王林Original
2019-11-15 15:15:293635Durchsuche

So rufen Sie die Schnittstelle der anderen Partei in Java auf

Schritte zum Aufrufen der http-Schnittstelle der anderen Partei:

URL url = new URL(path);

1. Öffnen Sie die Verbindung mit der URL

HttpURLConnection conn = (HttpURLConnection) url.openConnection();

2 ein allgemeines Anforderungsattribut

conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)");

3. Legen Sie fest, ob an httpUrlConnection ausgegeben und von httpUrlConnection gelesen werden soll.

Senden Sie außerdem eine Post-Anfrage. Die am häufigsten verwendeten HTTP-Anfragen sind Get und Post. Mit der Get-Anfrage können Sie die Parameter nach der URL-Zeichenfolge einfügen und an das Servlet übergeben . Der Unterschied zwischen Post und Get Die Parameter im Post werden nicht in der URL-Zeichenfolge platziert, sondern im Hauptteil der http-Anfrage.

conn.setDoOutput(true);
conn.setDoInput(true);

4. Trennen, am besten schreiben, die Trennung wird nur unterbrochen, wenn die zugrunde liegende TCP-Socket-Verbindung inaktiv ist. Wenn es von anderen Threads verwendet wird, wird es nicht abgeschnitten. Wenn Multithreading behoben ist und Sie die Verbindung nicht trennen, erhöht sich die Anzahl der Verbindungen, bis keine Informationen mehr gesendet oder empfangen werden können. Nach dem Schreiben wird die Verbindung getrennt und es wird normal.

conn.disconnect();

Code-Demo:

package com.c;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.HttpURLConnection;
import java.net.URL;
/**
 * @author 包福平
 * @QQ:1140913970
 */
public class ToInterface {
    /**
     * 调用对方接口方法
     * @param path 对方或第三方提供的路径
     * @param data 向对方或第三方发送的数据,大多数情况下给对方发送JSON数据让对方解析
     */
    public static void interfaceUtil(String path,String data) {
        try {
            URL url = new URL(path);
            //打开和url之间的连接
            HttpURLConnection conn = (HttpURLConnection) url.openConnection();
            PrintWriter out = null;
            //请求方式
//          conn.setRequestMethod("POST");
//           //设置通用的请求属性
            conn.setRequestProperty("accept", "*/*");
            conn.setRequestProperty("connection", "Keep-Alive");
            conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)"); 
            //设置是否向httpUrlConnection输出,设置是否从httpUrlConnection读入,此外发送post请求必须设置这两个
            //最常用的Http请求无非是get和post,get请求可以获取静态页面,也可以把参数放在URL字串后面,传递给servlet,
            //post与get的 不同之处在于post的参数不是放在URL字串里面,而是放在http请求的正文内。
            conn.setDoOutput(true);
            conn.setDoInput(true);
            //获取URLConnection对象对应的输出流
            out = new PrintWriter(conn.getOutputStream());
            //发送请求参数即数据
            out.print(data);
            //缓冲数据
            out.flush();
            //获取URLConnection对象对应的输入流
            InputStream is = conn.getInputStream();
            //构造一个字符流缓存
            BufferedReader br = new BufferedReader(new InputStreamReader(is));
            String str = "";
            while ((str = br.readLine()) != null) {
                System.out.println(str);
            }
            //关闭流
            is.close();
            //断开连接,最好写上,disconnect是在底层tcp socket链接空闲时才切断。如果正在被其他线程使用就不切断。
            //固定多线程的话,如果不disconnect,链接会增多,直到收发不出信息。写上disconnect后正常一些。
            conn.disconnect();
            System.out.println("完整结束");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public static void main(String[] args) {
        interfaceUtil("http://api.map.baidu.com/telematics/v3/weather?location=嘉兴
        &output=json&ak=5slgyqGDENN7Sy7pw29IUvrZ", "");
//        interfaceUtil("http://192.168.10.89:8080/eoffice-restful/resources/sys/oadata", "usercode=10012");
//        interfaceUtil("http://192.168.10.89:8080/eoffice-restful/resources/sys/oaholiday",
//                    "floor=first&year=2017&month=9&isLeader=N");
    }
}

Empfohlenes Tutorial: Java-Tutorial

Das obige ist der detaillierte Inhalt vonSo rufen Sie die Schnittstelle der anderen Partei in Java auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn