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
)。
我的请求无法正常工作。我有一个带有搜索按钮的搜索框。用户可以在搜索框中输入地址,然后将地址发送出去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
)。