62,041
社区成员
发帖
与我相关
我的任务
分享
WebClient wc = new WebClient();
wc.Encoding = System.Text.Encoding.UTF8;
string strUrl;
if (context.Request.Cookies["lang"] != null && context.Request.Cookies["lang"].Value == "en-us")
strUrl = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat + "," + lon + "&sensor=false";
else
strUrl = "http://maps.googleapis.com/maps/api/geocode/json?latlng=" + lat + "," + lon + "&sensor=false&language=zh-CN";
try
{
string jsonStr = wc.DownloadString(strUrl);//执行时间过长
int begin = jsonStr.IndexOf("formatted_address");
if (begin < 0) return "";
int end = jsonStr.IndexOf("geometry");
return jsonStr.Substring(begin + 22, end - begin - 35);
}
catch
{
return "";
}
public class MyWebClient: WebClient
{
//time in milliseconds
private int timeout;
public int Timeout
{
get {
return timeout;
}
set {
timeout = value;
}
}
public MyWebClient()
{
this.timeout = 60000;
}
public MyWebClient(int timeout)
{
this.timeout = timeout;
}
protected override WebRequest GetWebRequest(Uri address)
{
var result = base.GetWebRequest(address);
result.Timeout = this.timeout;
return result;
}
}
代码来自下面文章
http://w3ka.blogspot.com.au/2009/12/how-to-fix-webclient-timeout-issue.html