[英]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.