簡體   English   中英

使用 java.net.URL 發送 API 密鑰

[英]Sending API key using java.net.URL

我正在嘗試發送一個 API 密鑰來訪問一些數據。 這個數據需要作為輸入流返回,所以我可以解析它。 我正在使用java.net.URL訪問該站點,但找不到通過 http 請求發送 API 密鑰的方法。

URL url = new URL("My specified URL for the API");

        FeedMessage feed = FeedMessage.parseFrom(url.openStream());
        for (FeedEntity entity : feed.getEntityList()) {
            if (entity.hasTripUpdate()) {
                System.out.println(entity.getTripUpdate());
            }
        }

我最終使用這些庫來解決這個問題:

import java.io.InputStream;
import com.google.transit.realtime.GtfsRealtime.FeedEntity;
import com.google.transit.realtime.GtfsRealtime.FeedMessage;

import java.net.URI;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.util.EntityUtils;

這使我能夠從 API 獲取我想要的數據,然后將其轉換為輸入流。 允許我這樣做的代碼如下。

HttpClient httpclient = HttpClients.createDefault();
        try
        {
            URIBuilder builder = new URIBuilder("URL");

            URI uri = builder.build();
            HttpGet request = new HttpGet(uri);
            request.setHeader("Cache-Control", "no-cache");
            request.setHeader("Ocp-Apim-Subscription-Key", "API-Key");


            HttpResponse response = httpclient.execute(request);
            HttpEntity entity = response.getEntity();
            InputStream content = entity.getContent();

            FeedMessage feed = FeedMessage.parseFrom(content);
         }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM