我的要求无法正常运作。我有一个带搜索按钮的搜索框。用户可以在搜索框中输入地址,然后通过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);
}
}
答案 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?),您无权访问跨域资源:
由于这个原因,你得到Security Error
。根据您使用的实际环境,可能有不同的方法来解决此问题。例如,在Silverlight中,您可能需要include a clientaccesspolicy.xml
文件才能进行跨域调用。在此文件中,您需要明确允许您向其发出HTTP请求的域(在您的情况下为maps.googleapis.com
)。