Google API WebRequest无效

时间:2017-01-06 21:03:58

标签: c# google-api httpwebrequest webrequest

我的要求无法正常运作。我有一个带搜索按钮的搜索框。用户可以在搜索框中输入地址,然后通过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);
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

地理编码API返回JSON。示例:https://maps.googleapis.com/maps/api/geocode/json?address=fifth%20avenue&key=AIzaSyCgsNpuUoH7m6U7lqeZjlLZ3MgM15PW15o

但是在这里你试图把这个JSON放到XML文档中:

var xdoc = XDocument.Load(responseStream);

我建议您使用JSON解析器。

现在您已经显示了实际的异常,似乎在您正在使用的环境中(Silverlight?),您无权访问跨域资源:

enter image description here

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