Google API WebRequest 不工作

Google API WebRequest not working

我的请求无法正常工作。我有一个带有搜索按钮的搜索框。用户可以在搜索框中输入地址,然后将地址发送出去Google的API。但由于某种原因,这不起作用。有谁知道为什么?我还将附上调试时 request 的值的图片。

private void RequestResponseHandler(IAsyncResult asyncResult)
{
    HttpWebResponse response = null;
    Stream responseStream = null;
    try
    {
        response = (HttpWebResponse)request.EndGetResponse(asyncResult);
        responseStream = response.GetResponseStream();
        var xdoc = XDocument.Load(responseStream);
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message);
    }
}

地址解析 API returns JSON。示例:https://maps.googleapis.com/maps/api/geocode/json?address=fifth%20avenue&key=AIzaSyCgsNpuUoH7m6U7lqeZjlLZ3MgM15PW15o

但是您在这里试图将此 JSON 放入 XML 文档中:

var xdoc = XDocument.Load(responseStream);

我建议您改用 JSON 解析器。

既然您已经显示了实际异常,那么在您工作的环境(Silverlight?)中您似乎没有权限访问跨域资源:

您因此获得 Security Error。根据您使用的实际环境,可能有不同的方法来解决此问题。例如,在 Silverlight 中,您可能需要 include a clientaccesspolicy.xml 文件才能进行跨域调用。在此文件中,您需要明确允许您需要向其发出 HTTP 请求的域(在您的情况下为 maps.googleapis.com)。