直到最近,以下代码仍在运行并从路由 API 返回旅行路线。
string routesAPIurl = "https://routes.googleapis.com/directions/v2:computeRoutes";
WebRequest request = WebRequest.Create(routesAPIurl);
request.Method = "POST";
//request.Headers["Content-Type"] = "application/json";
request.ContentType = "application/json";
request.Headers["X-Goog-Api-Key"] = "***************************";
request.Headers["X-Goog-FieldMask"] = "routes.legs.steps.transitDetails";
//create transitObject
TransitObject transitO = new TransitObject();
transitO.travelMode = "TRANSIT";
transitO.departureTime = DateTime.Parse("2024-04-17T09:30:00.000Z");
transitO.computeAlternativeRoutes = true;
Origin trnOrigin = new Origin();
trnOrigin.address = "********";
transitO.origin = trnOrigin;
Destination trnDestination = new Destination();
trnDestination.address = "********";
transitO.destination = trnDestination;
TransitPreferences transitPreferences = new TransitPreferences();
transitPreferences.routingPreference = "TRANSIT_ROUTING_PREFERENCE_UNSPECIFIED";
transitPreferences.allowedTravelModes = new string[] { "LIGHT_RAIL", "BUS" }.ToList();
transitO.transitPreferences = transitPreferences;
var data = Encoding.ASCII.GetBytes(JsonConvert.SerializeObject(transitO));
request.ContentLength = data.Length;
using (var stream = request.GetRequestStream())
{
stream.Write(data, 0, data.Length);
}
var response = (HttpWebResponse)request.GetResponse();
var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
以下是代码中引用的对象:
public class Destination
{
public string address { get; set; }
}
public class Origin
{
public string address { get; set; }
}
public class TransitObject
{
public Origin origin { get; set; }
public Destination destination { get; set; }
public string travelMode { get; set; }
public System.DateTime departureTime { get; set; }
public bool computeAlternativeRoutes { get; set; }
public TransitPreferences transitPreferences { get; set; }
}
public class TransitPreferences
{
public string routingPreference { get; set; }
public List<string> allowedTravelModes { get; set; }
}
当我今天运行它时,它返回空 {}
有谁知道为什么这会突然停止工作?我在 Google API 文档中找不到任何建议更新或更改的内容,这些更新或更改会导致它突然返回 {}
提前致谢
我检查了我的 google api 账单,余额良好。 我尝试过改变不同的领域,但没有成功。 上面的代码最后一次确认有效是在大约一个月前。
好吧,我明白了,但我将留下问题并设置答案以帮助其他错过它的人。
Google 将简单地返回 200 空,没有太多帮助,但我意识到出发时间是硬编码的,需要设置为始终在未来,因为过去的旅行路线是空的。
我现在已经编写了一些代码来生成将来的出发时间,并且它再次工作了