gpt4 book ai didi

java - 使用带有 Eclipse IDE 的 Google map API 在 Java 中连接被拒绝错误,而相同的 URL 在浏览器中给我结果

转载 作者:行者123 更新时间:2023-11-30 11:10:07 27 4
gpt4 key购买 nike

我将下面的代码用于一个简单的 Java 应用程序,该应用程序使用 Google map API 来获取 JASON 响应。

import com.google.api.client.http.HttpTransport;
import com.google.api.client.http.javanet.NetHttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
import com.google.api.services.mapsengine.MapsEngine;
import com.google.api.services.mapsengine.MapsEngineRequestInitializer;
import com.google.api.services.mapsengine.model.Feature;
import com.google.api.services.mapsengine.model.FeaturesListResponse;
import com.google.api.services.mapsengine.model.GeoJsonPoint;
import java.io.IOException;

/** Java "Hello, world!" example using the client library */
public class HelloWorld {
static final String SAMPLE_TABLE_ID = "12421761926155747447-06672618218968397709";
static final String PUBLIC_API_KEY = "**MYAPIKEY**";

public static void main(String[] args) throws Exception {
HttpTransport transport = new NetHttpTransport();
JsonFactory jsonFactory = new GsonFactory();

// This request initializer will ensure the API key is sent with every HTTP request.
MapsEngineRequestInitializer apiKeyInitializer =
new MapsEngineRequestInitializer(PUBLIC_API_KEY);

MapsEngine engine = new MapsEngine.Builder(transport, jsonFactory, null)
.setMapsEngineRequestInitializer(apiKeyInitializer)
.setApplicationName("Google-MapsEngineSample/1.0")
.build();

readFeaturesFromTable(engine);
}

public static void readFeaturesFromTable(MapsEngine me) throws IOException {
// Query the table for offices in WA that are within 100km of Perth.
FeaturesListResponse featResp = me.tables().features().list(SAMPLE_TABLE_ID)
.setVersion("published")
.setWhere("State='WA' AND ST_DISTANCE(geometry,ST_POINT(115.8589,-31.9522)) < 100000")
.execute();

for (Feature feat : featResp.getFeatures()) {
System.out.println(
"Properties: " + feat.getProperties().toString() + "\n\t" +
"Name: " + feat.getProperties().get("Fcilty_nam") + "\n\t" +
"Geometry Type: " + feat.getGeometry().getType());

if (feat.getGeometry() instanceof GeoJsonPoint) {
GeoJsonPoint point = (GeoJsonPoint) feat.getGeometry();
System.out.println("\t" +
"Longitude: " + point.getCoordinates().get(0) + ", " +
"Latitude: " + point.getCoordinates().get(1));
} else {
System.out.println("Only points are expected in this table!");
return;
}
}
}
}

我在这方面没有错误,因为我已经按照每条说明为谷歌地图 API 配置 eclipse IDE 并使用 jar 进行编译。 (通过引用此 Link 。)

在 Debug模式下调试此代码时会引发错误提示java.net.ConnectException:连接被拒绝:连接来自代码

FeaturesListResponse featResp = me.tables().features().list(SAMPLE_TABLE_ID)
.setVersion("published")
.setWhere("State='WA' AND ST_DISTANCE(geometry,ST_POINT(115.8589,-31.9522)) < 100000")
.execute();

由此产生的URL是

"https://www.googleapis.com/mapsengine/v1/tables/12421761926155747447-06672618218968397709/features?key=APIKEY&version=published&where=State%3D'WA'%20AND%20ST_DISTANCE(geometry,ST_POINT(115.8589,-31.9522))%20%3C%20100000"

如果我将 URL 粘贴到某些浏览器上,我会收到 Needed JASON 响应。

相同的代码在不同的环境中运行。

帮我解决这个问题。

谢谢。

最佳答案

我通过在发送请求之前在 HttpTransport 上设置代理解决了这个问题。

所以我在发送请求之前创建HttpTransport类型的对象之前设置了代理。

代码如下

public static void main(String[] args) throws Exception {
Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress("YOUR PROXY IP", 80));
HttpTransport transport = new NetHttpTransport.Builder().setProxy(proxy).build();
JsonFactory jsonFactory = new GsonFactory();
// This request initializer will ensure the API key is sent with every HTTP request.
MapsEngineRequestInitializer apiKeyInitializer =
new MapsEngineRequestInitializer(PUBLIC_API_KEY);
}

感谢您的回复。

关于java - 使用带有 Eclipse IDE 的 Google map API 在 Java 中连接被拒绝错误,而相同的 URL 在浏览器中给我结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27838607/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com